用mfc创建了一个基于dialog的程序。
现在想程序一开始运行就同时启动一个新的线程。该线程中需要对主窗口中的控件进行操作。该在哪里创建线程?我的做法是在OnInitDialog中CreateThread(.....),并把主窗口的句柄传到线程入口函数中。这样做有个问题,因为OnInitDialog还没有完了,虽然有句柄,但是还没有窗口。所以在线程函数中对窗口中的控件操作时,会出现Assert(IsWindow)异常。所以我想知道,CreateThread()函数应该放在什么地方才能实现上面的效果呢。
现在想程序一开始运行就同时启动一个新的线程。该线程中需要对主窗口中的控件进行操作。该在哪里创建线程?我的做法是在OnInitDialog中CreateThread(.....),并把主窗口的句柄传到线程入口函数中。这样做有个问题,因为OnInitDialog还没有完了,虽然有句柄,但是还没有窗口。所以在线程函数中对窗口中的控件操作时,会出现Assert(IsWindow)异常。所以我想知道,CreateThread()函数应该放在什么地方才能实现上面的效果呢。
解决方案 »
- DrawItem Icon问题
- 各位过路者,帮个忙吧 问个菜鸟的问题
- 一道有趣的题目
- 这些代码错在哪?AddFontResource("d:\\myfont.ttf"); SendMessage(WND_BROADCAST,0,0); //应该是:SendMessage(HWM_FONTCHANGE, WND_B
- 有关udp的问题!
- 请问关于新创建MAINFRAME窗口的问题——高分,在线等待
- 关于拷贝构造函数和运算符重载——为什么视而不见?
- 请问怎么把VC6.0的字体改成"couier new"?
- 发email用什么api啊?
- short int ??
- UDP接收高速数据包?
- MFC操作文件问题
不过你可以在OnInitDialog后添加PostMessage发送一个消息,用相应的相应函数执行下试试
或者直接在OnInitDialog最后添加Settimer();
OnTimer()里{创建线程;然后KillTimer();)