new
Create()
ShowWindow()
delete
Create()
ShowWindow()
delete
解决方案 »
- 把字符串变成unicode 并且按指定字数显示一段文字
- 请教----数据对齐问题
- 求一种分配算法(里面有详细的描述),多谢了
- 请问哪里有VC++技术内幕电子版的书下载?
- 一个关于DIRECTSHOW的中CoCreateInstance的问题;急切回复!!!
- 请问在UNIX下编译成的程序放到VC里编译为什么就通不过???
- MFC怎样点击菜单暂停键后使动画程序暂停
- 高手请进,低手莫入!
- 写DLL的高手救救我,送分啦
- 请问子进程继承父进程意味着什么?是不是说父进程可以操纵子进程的所有一切吗?我这方面的概念很模糊,不知道哪里用的到这项技术?
- 再提一个菜鸟问题:我怎么样删除工程中不需要的文件啊?
- 救命啊!我的NT进不了桌面了
加一个控件成员给class,如CButton m_button;
在CXXXView(或其他窗口)的OnCreate消息中创建控件
m_button.Create(...)//use the resource ID
手工添加一行到Message-map中,响应控件的消息ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
加上消息处理函数void CXXX::OnButton1()
手工添加一行到Message-map中,响应控件的消息ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
加上消息处理函数void CXXX::OnButton1() 这些手工添加的代码不要添加到自动添加的消息代码区,否则,会有被自动删除的危险。
有的控件消失了ShowWindow(SW_HIDE)
有的控件位置发生了变化。 BOOL MoveWindow(
HWND hWnd, // handle to window
int X, // horizontal position
int Y, // vertical position
int nWidth, // width
int nHeight, // height
BOOL bRepaint // repaint option
);
CButton *btnOK;
btnOK=new CButton;
btnOK.Create(NULL,20,20,100,100,IDC_BUTTON_OK);//具体参数记不清了.很抱歉.
//以下可以使用btnOK的各种方法来处理按钮了.
btnOK.Destroy();
我得邮件是[email protected].多谢!!
ON_MESSAGE(id_yours,func)
作者:bzshow读者层次: VC初学者在资源编辑器里我们可以方便地在对话框中加入所需控件,比如文本编辑框、列表控件等。但假如我们需要在运行期间动态生成这些控件该怎么做呢?本文就是讲述用代码动态添加控件的方法,并提供示例工程。下载示例工程 12.5K程序运行界面如下
为了方便演示,我们先生成一个基于对话框的MFC工程,起名为My在CMyDlg.h中做下面几个步骤:
public:
//加上这个变量
CEdit m_MyEdit;
protected:
//加上这个函数, 用来响应编辑框改变的事件
afx_msg void OnChangeEdit();
在CMyDlg.cpp中做下面几个动作:
//增加这一行,为该编辑框设定ID为1820
#define ID_MYEDT 1820
在BEGIN_MESSAGE_MAP(CMyDlg, CDialog)下面加入
ON_EN_CHANGE(ID_MYEDT, OnChangeEdit)
添加这一句的作用是将编辑控件内容改变的消息映射到OnChangeEdit函数,你要在CMyDlg.cpp中实现OnChangeEdit()函数;
好了,让我们动态生成控件吧! m_MyEdit.CreateEx(WS_EX_CLIENTEDGE, // 3D-border外观
_T("EDIT"),
NULL,
ES_AUTOHSCROLL | ES_LEFT | ES_NOHIDESEL | WS_CHILD,
rect, this,
ID_MYEDT);//生成edit控件
m_MyEdit.ShowWindow(SW_SHOW); //显示控件
m_MyEdit.SetFocus(); //设置焦点//动态删除可以用如下语句
GetDlgItem(ID_MYEDT)->DestroyWindow();//销毁控件 在代码中我们只演示了编辑控件的动态生成方法,其它控件动态生成的方法基本一致,都可以参考这一过程。