WIN CE里对话框上的 OK 传递的消息是不是IDOK?

koalaping   2009-9-16 14:17 楼主
WIN CE里对话框上的 OK 传递的消息是不是IDOK啊?

我在MFC下建两个消息函数

ON_MESSAGE(IDOK,ALLIDOK)
ON_MESSAGE(IDCANCEL,ALLCANCEL)

结果发现不管是点对话框上的 OK 还是 叉叉 都是进到ALLCANCEL里进行执行?

想问下WIN CE里对话框上的 OK 传递的消息是什么,叉叉 传递的消息又是什么?

回复评论 (17)

OK 传递IDOK
叉叉 传递的IDCANCEL
点赞  2009-9-16 14:22
引用: 引用 1 楼 comey 的回复:
OK 传递IDOK
叉叉 传递的IDCANCEL


我在MFC下建两个消息函数

ON_MESSAGE(IDOK,ALLIDOK)
ON_MESSAGE(IDCANCEL,ALLCANCEL)

结果发现不管是点对话框上的 OK 还是 叉叉 都是进到ALLCANCEL里进行执行这是怎么回事呵?
点赞  2009-9-16 14:25
自己用API实现啊。。。。
点赞  2009-9-16 15:48
IDOK呵IDCANCEL是用作返回值判断的
点赞  2009-9-16 15:52
引用: 引用 1 楼 comey 的回复:
OK 传递IDOK
叉叉 传递的IDCANCEL

是这样的
点赞  2009-9-16 15:55
在MFC里

ON_MESSAGE(IDOK,ALLIDOK)
ON_MESSAGE(IDCANCEL,ALLCANCEL)

LRESULT CMy11Dlg::ALLIDOK(WPARAM wParam,LPARAM lParam)
{
   。。。。。。
}
LRESULT CMy11Dlg::ALLCANCEL(WPARAM wParam,LPARAM lParam)
{
  。。。。。。
}

然后我设断点去判断。。。当我点击 OK 和叉叉 的时候程序都只进了ALLCANCEL(WPARAM wParam,LPARAM lParam)
如果我想要点击OK的时候执行ALLIDOK。。。。点击 叉叉 的时候进ALLCANCEL。。。。要怎么改啊?

点赞  2009-9-16 16:05
帮顶 不懂MFC
点赞  2009-9-16 16:16
OK是你自己创建 的,idcancle 是系统默认的
点赞  2009-9-16 16:18
会不会你代码里IDOK、IDCANCEL   define了相同的值?
点赞  2009-9-16 16:24
引用: 引用 9 楼 comey 的回复:
会不会你代码里IDOK、IDCANCEL? define了相同的值?


我觉得也有可能。。。不然怎么会出现这种情况
点赞  2009-9-16 16:27
引用: 引用 9 楼 comey 的回复:
会不会你代码里IDOK、IDCANCEL? define了相同的值?




/*
* Dialog Box Command IDs
*/
#define IDOK                1
#define IDCANCEL            2


没有啊~~~值不同啊~
点赞  2009-9-16 16:32
引用: 引用 11 楼 tcdl85 的回复:
引用 9 楼 comey 的回复:
会不会你代码里IDOK、IDCANCEL? define了相同的值?



/*
* Dialog Box Command IDs
*/
#define IDOK? ? ? ? ? ? ? ? 1
#define IDCANCEL? ? ? ? ? ? 2


没有啊~~~值不同啊~


你自己定义的这两个值?系统中会自己定义这两个值的。。。。
点赞  2009-9-16 16:39
就是在WINUSER.H里的。。。不是我自己定义的

难道是RP问题~~~
点赞  2009-9-16 16:43
不大可能吧
点赞  2009-9-16 16:54
叉叉貌似传递的WM_CLOSE消息。。。在Win32程序里头跟踪了一下
点赞  2009-9-16 16:56
就是这样啊~~~我用断点去看。。。结果不管我点OK还是点叉叉。。。程序都是会进ALLCANCEL里去。。。
点赞  2009-9-16 16:58
OK传递的是IDOK消息。。
点赞  2009-9-16 17:00
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复