VC++编程常见
问题解答二十 问:如何改变默认的光标形状?
我试着将光标改变为其它的形状和颜色,但却没有变化. 答:在对话框/窗口/你需要的地方加上对 WM_SETCURSOR 消息的处理.
BOOL MyDialog::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { // TODO: Add your message handler code here and/or call default ::SetCursor(AfxGetApp()->LoadCursor(IDC_MYCURSOR)); return TRUE; //return CDialog::OnSetCursor(pWnd, nHitTest, message); }
你没有成功的原因是因为窗口类光标风格不能为 NULL. 问:如何在线程中处理状态条? 在我的应用程序 CWnd 的继承中有指针指向状态条,用 pStatusBar->SetPaneText(0,status,TRUE)在状态条上显示一些文本都很正常. 但 在第二个线程中调用该函数却不行,出现 hwnd 警告. 答:当你传送一个 CWnd 的指针到另外一个线程时,m_hWnd 将为空.我的办法是用 PostThreadMessage 传送消息到状态条的父类,让它对状态条进行处理.
问:如何阻止 WINDOWS 关闭?
我有一个应用
程序会不停地
工作.当该程序正常运行时,该如何避免用户关掉 系 统?是不是该用 WM_QUERYENDSESSION. 答:是的,在你的主框架窗口类中使用.
// in the class header afx_msg BOOL OnQueryEndSession( WPARAM wReserved, LPARAM lEndReason );
// in the Message Map ON_MESSAGE( WM_QUERYENDSESSION, OnQueryEndSession ) // in the class body BOOL CMainFrame::OnQueryEndSession( WPARAM wReserved, LPARAM lEndReason ) { if(lEndReason =3D=3D ENDSESSION_LOGOFF ) { // user is logging off else // Windows is going down return(bCanExit ); }