BCB如何在主程序消息循环中加入自己的方法?
当然,可以单独再起一个线程,但我觉得如果不起线程最好。
以下是 C 语言的主过程,怎么把 里面RedrawFrame 方法 改写到BCB中的应用程序的消息循环中去?
//winmain
int WINAPI WinMain ( HINSTANCE hInstance , HINSTANCE hPrevInstance , LPSTR lpCmdLine , int nShowCmd )
{
//...略
MSG msg ;
//message pump
for ( ; ; )
{
//check for a message
if ( PeekMessage( &msg , NULL , 0 , 0 , PM_REMOVE ) )
{
//message exists
//check for quit message
if ( msg.message == WM_QUIT ) break ;
//translate the message
TranslateMessage ( &msg ) ;
//dispatch the message
DispatchMessage ( &msg ) ;
}
else
{
//no message, update frame
RedrawFrame ( ) ;
}
}
//...略
//exit
return ( msg.wParam ) ;
}
[解决办法]
你这样写感觉问题很大啊
可以考虑通过别的方式实现
[解决办法]
#define UM_FIRST(WM_USER + 1)
public:
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(UM_FIRST, TMessage, UMFirst);
END_MESSAGE_MAP(TForm);
protected:
void __fastcall UMFirst(TMessage Message);
大概就是这样的形式,具体自己查查帮助吧
[解决办法]
一般程序都用的是GetMessage,但你要用PeekMessage,在VCL的程序(默认的是GetMessage)中确实不好办
看看那位高手能解决,莫非要用api钩子钩GetMessage?