【MFC系列3】永远点不到的按钮
生活随笔
收集整理的這篇文章主要介紹了
【MFC系列3】永远点不到的按钮
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
變量的聲明與定義
全局變量theApp的定義
CXXXXApp theApp; // 定義在其他類中想要訪問全局變量theApp時,需在stdafx.h中進(jìn)行聲明
#include "XXXX.h" extern CXXXXApp theApp; // 聲明三個被系統(tǒng)接管的消息(缺省,虛函數(shù)回調(diào))
WM_INITDIALOG
WM_COMMAND:IDOK、IDCANCEL
永遠(yuǎn)點不到的按鈕
給WM_SETCURSOR消息添加處理函數(shù)
方法一
BOOL CTestRectDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) {if (pWnd->GetDlgCtrlID() == IDC_TEST){RECT rect,rt;pWnd->GetWindowRect(&rect);// 獲取的坐標(biāo)為屏幕坐標(biāo)系中的坐標(biāo)this->ScreenToClient(&rect);// 轉(zhuǎn)換為客戶區(qū)坐標(biāo)int nWidth = rect.right - rect.left;rect.left += nWidth;rect.right += nWidth;GetClientRect(&rt);if (rect.right > rt.right){rect.right -= rect.left;rect.left -= rect.left;}pWnd->MoveWindow(&rect);}//TRACE("切換%d\n",pWnd->GetDlgCtrlID());return CDialogEx::OnSetCursor(pWnd, nHitTest, message); }方法二
BOOL CTestRectDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) {if (pWnd->GetDlgCtrlID() == IDC_TEST){CRect rect,rt;pWnd->GetWindowRect(rect);this->ScreenToClient(rect);rect.OffsetRect(rect.Width(), 0); // 平移GetClientRect(&rt);if (rect.right > rt.right){rect.OffsetRect(-rect.left, 0);}pWnd->MoveWindow(rect);}//TRACE("切換%d\n",pWnd->GetDlgCtrlID());return CDialogEx::OnSetCursor(pWnd, nHitTest, message); }總結(jié)
以上是生活随笔為你收集整理的【MFC系列3】永远点不到的按钮的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【MFC系列2】Win32项目转换为MF
- 下一篇: CSAPP:Attack lab