最新评论
DialogBox无法接受WM_KEYDOWN的问题可以解决的:
1.对话框的创建要用CreateDialog
2.消息循环大概像下面的样子
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
if (msg.message == WM_KEYDOWN)
{
SendMessage(hWnd, msg.message, msg.wParam, msg.lParam);
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
DialogBox无法接受WM_KEYDOWN的问题可以解决的:
1.对话框的创建要用CreateDialog
2.消息循环大概像下面的样子
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
if (msg.message == WM_KEYDOWN)
{
SendMessage(hWnd, msg.message, msg.wParam, msg.lParam);
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
DialogBox无法接受WM_KEYDOWN的问题可以解决的:
1.对话框的创建要用CreateDialog
2.消息循环大概像下面的样子
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
if (msg.message == WM_KEYDOWN)
{
SendMessage(hWnd, msg.message, msg.wParam, msg.lParam);
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
re: 对C#中事件的一些想法和疑问 foxtail 2008-08-11 12:02
你个鸟人要么不写,一写就发到首页原创去。汗
re: 对C#中事件的一些想法和疑问 小老虎 2008-08-08 08:50
谢谢,我以后注意了@olympic_(no login)
re: 对C#中事件的一些想法和疑问 陈晨 2008-08-07 21:16
学习事件机制,可以类比Button.Click事件
用Reflector查看Button类的源码
找出Click事件实现部分,接下来想想Click事件是怎么触发的
自定义的事件处理函数是怎么执行的
了解这些之后对控件的事件处理机制有个感性的认识
re: 对C#中事件的一些想法和疑问 tiraynet 2008-08-07 19:59
一般来说事件的处理函数是供外部使用的,比如对象实例的创建者。而OnLeave(EventArgs e)这样的函数是供类内部的使用的,或者用于创建继承类的时候使用的,这也是其定义为protected override的愿意。虽然你说的两种方法都可用,但最佳选择是第一种方法。
你所说的C#的事件触发流程应该是这样:
文本框失去焦点 --> 调用OnLeave()函数--> 调用登记的事件处理函数(如:NewReceiver()) --> 返回
另外当事件处理函数需要完成比较耗时的计算时,可以采用异步方式执行。
呵呵,不知道说的是不是清楚了?
re: 对C#中事件的一些想法和疑问 水言木 2008-08-07 19:59
建议去看Observer设计模式,再结合看看.net下的事件机制,就都明白了
re: 对C#中事件的一些想法和疑问 Gray Zhang 2008-08-07 19:52
是在OnLeave中触发的事件,你的顺序有点错了
re: 对C#中事件的一些想法和疑问 olympic_(no login) 2008-08-07 19:40
另外建议将本文从首页,移动到答疑区
或者到
http://space.cnblogs.com中进行提问
美好社区靠大家共同创造,支持您的好学,请也支持我们的工作
re: 对C#中事件的一些想法和疑问 olympic_(no login) 2008-08-07 19:38
这里是因为什么机制调用的?
事件的订阅机制,也就是你那儿的+=
在base.OnLeave()的时候就会调用handler(this, e);这会引起所有的订阅均被触发。
所以事件只有触发一次,正确的顺序可能包含以下内容:
触发Leave事件->调用订阅1
->调用订阅2
而订阅1和订阅2不一定是依照一定的顺序的,当然通常是和订阅的顺序一致,但这个可能因为多线程而变成非顺序的。因此订阅之间最好不要共享。否则将出现未知的顺序问题!
re: just do it foxtail 2008-08-04 20:37
恩 就是这样的 哈哈
re: 类模板的分离编译 flaky 2008-07-10 13:08
3. 使用export关键字。
这个具体怎么实现呢
primer在看中
谢谢
re: 同一个类的不同实例间private成员的相互访问 hoodlum1980 2008-06-18 12:55
这是编译器行为,在类的定义里面可以访问到所有成员包括private的,因此这里不同于在类的外部。在类内部去访问,这和你用this->去访问是本质上完全一样的,这也是编译器唯一允许private成员可见的地方。
re: 类模板的分离编译 foxtail 2008-02-02 22:56
re: 类模板的分离编译 foxtail 2008-01-31 22:25
怎么贴到这里了,修正了果然可以。
re: 放寒假了。。 石牌村夫 2008-01-18 12:16
太多了吧