一个自定义消息的例子

.h
#define IDM_MYCLOSEPRESS                45571
LRESULT OnMyClose(WPARAM wParam, LPARAM lParam);


.cpp
BEGIN_MESSAGE_MAP(CProgress, CDialog)
    //ON_WM_CLOSE()
    ON_MESSAGE(IDM_MYCLOSEPRESS,OnMyClose)
END_MESSAGE_MAP()




LRESULT CProgress::OnMyClose(WPARAM wParam, LPARAM lParam)
{
    CDialog::OnOK();


    return 0;
}
定时器调用
SetTimer(1, 100, NULL);
void CXXXX::OnTimer(UINT_PTR nIDEvent)
{


    KillTimer(1);
    DoSomeThing();
    CDialog::OnTimer(nIDEvent);   
}


.h
afx_msg void OnTimer(UINT_PTR nIDEvent);


CXXXX* pDetaiDlg = GetPDDlg();
if(pDetaiDlg)
{
pDetaiDlg->m_bCancelMsgSet =TRUE;
DWORD dwThreadID ;
::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE )WaitForReturn,(LPVOID)pDetaiDlg,0,&dwThreadID);
}
UINT  WaitForReturn(LPVOID lpParam)
{
CXXXX *pWndProcess = (CXXXX *)lpParam; 
HWND hWnd = pWndProcess->GetParent()->GetSafeHwnd();
MSG msg;
while (hWnd)
{
if(PeekMessage(&msg,hWnd , 0, 0xFFFF,PM_REMOVE))
//if(GetMessage(&msg, NULL, WM_KEYDOWN, WM_KEYDOWN))
{

if ( (msg.message == WM_KEYDOWN) && (msg.wParam == VK_RETURN))
{
pWndProcess->CancelProcessBar();
break;
}
TranslateMessage(&msg);
(void)DispatchMessage(&msg);
}
}


return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值