这个程序分层主要是这样:主框架下有个左边窗口,左边窗口里有个CTabCtrl控件,这个控件标签第三页上我动态画了几个按钮,主要目的就是为了相应单击消息。也给其添加了消息响应 :.H中afx_msg void OnButtonClicked(WPARAM wParam, LPARAM lParam); .CPP中 ON_CONTROL_RANGE(BN_CLICKED, IDC_BTN_DOCUMENT, IDC_BTN_HELP, OnButtonClicked) 按钮创建CButton *pButton = new CButton;
pButton -> Create(_T("共享文档"), WS_GROUP |WS_CHILD |WS_VISIBLE |BS_PUSHBUTTON,
CRect(10,20,60,40), &m_wndQuickList, IDC_BTN_DOCUMENT);函数实现:
void CDlgLeft::OnButtonClicked(WPARAM wParam, LPARAM lParam)
{
switch(HIWORD(wParam))
{
case BN_CLICKED:
{
switch(LOWORD(wParam))
{
case IDC_BTN_DOCUMENT:
{
MessageBox("gan");
}
break;
}
}
break;
}
}按钮可以显示出来且正常,在第三页,但是我点了按钮,MSGBOX弹出来,为什么?怎么解决..跟父窗口应该没什么关系吧?
pButton -> Create(_T("共享文档"), WS_GROUP |WS_CHILD |WS_VISIBLE |BS_PUSHBUTTON,
CRect(10,20,60,40), &m_wndQuickList, IDC_BTN_DOCUMENT);函数实现:
void CDlgLeft::OnButtonClicked(WPARAM wParam, LPARAM lParam)
{
switch(HIWORD(wParam))
{
case BN_CLICKED:
{
switch(LOWORD(wParam))
{
case IDC_BTN_DOCUMENT:
{
MessageBox("gan");
}
break;
}
}
break;
}
}按钮可以显示出来且正常,在第三页,但是我点了按钮,MSGBOX弹出来,为什么?怎么解决..跟父窗口应该没什么关系吧?
解决方案 »
- 生成个MFC,但是解决方案管理器里没文件,怎么回事
- 关于在MFC中从数据库读取图片图片显示的问题(所有的分了)
- 请朋友上传“世纪星7.12 标准版”组态软件的源代码
- 敢问路在何方?
- TextOut区域如何使底色透明?
- 用API建立了一个文本框,如何让它只接受两次输入,后面输入无效,散100分......
- 关于函数AfxFindResourceHandle()
- 各位,VC作中小型数据库管理系统会不会用到,图、二树叉、排序、之类的算法
- 哪儿有一些示例的小程序?
- dw4和UltraDev4.0在win2k下为什么老运行不了呀,烦死我了,有补丁吗?
- Cmainframe出现问题了,无法添加消息响应怎么办
- 这样是需要打包吗? 谢谢!
afx_msg void OnButtonClicked(UITN nID);应该是这样的
我改成 void CDlgLeft::OnButtonClicked(UINT nID)
{
switch (nID)
{
case IDC_BTN_DOCUMENT:
{
MessageBox("f");
}
break;
}
} 当然头文件也改了,还是出不来.. - -!
改了还是不行..
之后试了ON_NOTIFY_RANGE 貌似也不行,也可能是我NOTIFY函数写错了..哪位大侠来说说..
我觉得应该是执行了吧
SWITCH(nID)下了个断点,没断到..一个多线程的很大的程序。
按钮的创建那倒是断到了.. 主框架的初始化等都有到,我是不是程序位置放的不对?我把这些消息上面的一股脑放在了主框架类中.. 有必要重新重绘个BUTTON类不? 不过我觉得跟这个没太大关系..
程序结构是这样的:主框架下有个左边窗口,左边窗口里有个CTabCtrl控件,这个控件标签第三页上我先用ListCtrl初始化了,然后在上面动态画的几个按钮. 然后消息响应函数等都是在左边窗口类中写的,不知道这个有没有影响..
pButton -> Create(_T("共享文档"), WS_GROUP |WS_CHILD |WS_VISIBLE |BS_PUSHBUTTON,
CRect(10,20,60,40), &m_wndQuickList, IDC_BTN_DOCUMENT);上面代码,楼主是写在哪的?
if (pMsg->message == wm_commamd && id == LOWORD(pMsg->wParam))
{
pButton ->OnButtonClicked(pMsg->wParam, pMsg->lParam);
}
我写在主框架下的左对话框里在,想半天,我知道写错了。不应该在按钮的祖父类里面写,哈哈..正在改在..对MFC机制不是太熟,我现在给ListCtrl派生了个类CQukKeyListCtrl,然后用这个类给第三页标签初始化了,我现在正在这个类里面写按钮及按钮的消息处理..我给CQukKeyListCtrl类加了个成员函数CreateButton,然后在里面创建按钮..我不知道其第四个参数CWnd* pParentWnd应该怎么,我用的this好像按钮出不来.. 我该怎么弄?需要弄个按钮继承类吗??