1. 程式人生 > >視窗非客戶區的繪製

視窗非客戶區的繪製


7.最後要響應WM_NCMOUSEMOVE,WM_NCLBUTTONDOWN,WM_NCLBUTTONUP,
 WM_NCMOUSELEAVE,來處理Titlebar上的滑鼠動作.

另外最好呼叫SetWindowTheme(hWnd, L"", L""),和
DWORD dwAttr = 1;
DwmSetWindowAttribute(hWnd, 2, &dwAttr, 4));
以防止xp,和vista用主題繪製視窗nc區.
這兩條函式分別是xp和vista特有的,所以只能動態載入相應的dll以呼叫之.
  

相關推薦

視窗客戶繪製

7.最後要響應WM_NCMOUSEMOVE,WM_NCLBUTTONDOWN,WM_NCLBUTTONUP, WM_NCMOUSELEAVE,來處理Titlebar上的滑鼠動作.另外最好呼叫SetWindowTheme(hWnd, L"", L""),和DWORD dwAttr = 1;DwmSetWindo

VC----SDK下對視窗客戶的操作

視窗分成兩大部分:客戶區和非客戶區。非客戶區再次細分:標題欄,如圖片中頂部深藍色;左邊框,如圖片中紅色部分;上邊框,如圖片中綠色部分;右邊框,如圖片中右側天藍色部分;底邊框,如圖片中下面棕色部分。 之所以要有這樣的區分,是因為,我在用函式SystemParametersI

7.3 客戶滑鼠訊息

摘錄於《Windows程式(第5版,珍藏版).CHarles.Petzold 著》P230         到目前為止,所有討論的 10 種滑鼠訊息都是發生在視窗客戶區內的移動或單擊。如果滑鼠位於視窗內部除客戶區外的其他區域,Windows 就會向視窗過程傳送一個“非客

MFC中客戶區和客戶的區別&OnPaint和OnDrawn的區別

1.客戶區和非客戶區的區別: 在一個MDI(多文件)應用程式中每個概念如下圖所示:   視窗框架客戶區即藍色方框內區域,視窗框架非客戶區指藍色方框之外的視窗區域,包括程式圖示、標題欄、選單欄、最大\最小\關閉按鈕,左右邊框和底下的狀態條。 檢視的客戶區指圖中綠色部

客戶滑鼠訊息、客戶滑鼠訊息、擊中測試、滑鼠滾輪

注:以下內容為學習筆記,多數是從書本、資料中得來,只為加深印象,及日後參考。然而本人表達能力較差,寫的不好。因非翻譯、非轉載,只好選原創,但多數乃摘抄,實為慚愧。但若能幫助一二訪客,幸甚! 注:以下內容多數摘自《Windows程式設計》 1. 滑鼠資訊 判斷是否連線了滑鼠

在單文件的客戶客戶畫圖

void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)  { // TODO: Add your message handler code here and/or call default m_ptOrigi

NCpaint, 客戶實現陰影

如何改變單文件的標題顏色?|||在OnNcPaint 中呼叫 drawtext記住DC要用 CWindowDC。|||最近樓主在VC區比較活躍!!快速進步中的菜鳥!|||引用 2 樓 ziplj 的回覆:最近樓主在VC區比較活躍!!快速進步中的菜鳥!|||WM_NCPAINT] 如何改變單文件的標題顏色?

MFC獲取視窗客戶座標分析

CWnd* pWnd = GetDlgItem(IDB_BUT_RECOGNIZE); pWnd->GetClientRect(&rect);   //指該控制元件自身客戶區的矩形,原點為控制元件左上角,長寬為整個控制元件的尺寸 ClientToScreen(

獲得客戶的邊界和獲得視窗的邊界

BOOL WINAPI GetClientRect(   _In_  HWND   hWnd,   _Out_ LPRECT lpRect ); BOOL WINAPI GetWindowRect(

MFC-客戶客戶區

1 在一個MDI(多文件)應用程式中每個概念如下圖所標示: 1)視窗框架的客戶區就是指圖中的灰色部分:即藍色方框內區域,框架的非客戶區就是指藍色方框之外的視窗區域,包括程式圖示,標題欄,選單,最大最小/關閉按紐,左右兩個框和底下的狀態條. 2

Qt 無邊框無非客戶視窗拖動、縮放改變大小、滑鼠變形,windows同款,完美實現

簡單點說,是在windows下實現視窗拖動和改變大小,一種方法是過載mousePressEvent系列全家福函式,然後在mouseMoveEvent中實現邊移滑鼠視窗就一邊重繪。這種方法網上資料很多,見下:這種方法缺點是移動的時候視窗閃爍厲害。摒棄。但該方法給了一個很好的思路

邏輯座標與裝置座標——全視窗座標、螢幕座標、客戶座標的總結

Windows應用程式繪製圖形時使用的是一種邏輯單位,每個邏輯單位的大小由對映模式決定,這個邏輯單位既可以與裝置單位(螢幕或印表機上的一個畫素點)相同,也可以是一種物理單位(如毫米),還可以是使用者自定義的一種單位。在Windows應用程式中,只要與輸出有關係,都要使用對映

MFC 中實現在客戶拖動來拖動視窗的方法總結

VC++實現無標題欄對話方塊的拖動 其實說白了就是欺騙,欺騙誰了?呵呵,當然是欺騙windows,本來是移動標題欄可以拖動窗體,那麼我們現在是拖動客戶區來移動,當我們拖動標題欄的時候windows產生一個WM_NCHITTEST訊息,這個訊息確定滑鼠點選的哪個位置,這個訊息

MFC修改視窗客戶顏色

思路:響應WM_PAINT訊息,純色繪製客戶區 程式碼:在OnPaint中新增如下程式碼 CPaintDC dc(this); // device context for painting CRe

Lesson 4: 視窗大小和客戶大小

當我們呼叫CreateWindowEx()函式時,我們使用了500*400來設定視窗的大小。然而,這和客戶區的大小是不一樣的。客戶區為視窗的一部分,遊戲軟體通常都在客戶區完成遊戲中的各種畫面、功能與效果的實現。 當使用Direct3D時,我們需要確定圖

MFC隱藏(去除)客戶的邊框以及隱藏客戶區

  我承認我被此問題困擾過,好在找到了解決方法,如下:   1.在C****View::PreCreateWindow(CREATESTRUCT& cs)函式內增加:cs.style &= ~WS_BORDER;    2.在CMainFrame::OnCreate(LPCREATESTRU

MFC客戶拖動視窗實現

思路: 總共分2步 1 在OnLButtonDown中記住滑鼠點選的位置2 在OnMouseMove中處理視窗移動 程式碼: void CLoginDlg::OnLButtonDown(UINT nF

(Win32視窗)如何把視窗客戶作為整個視窗的寬高??

// ... case WM_MOUSEMOVE: // 獲取滑鼠的XY座標 g_mouseX = LOWORD(lParam); g_mouseY = HIWORD(lParam); // ... RECT rc; SetRect( &rc, 

成長,就是反復在自己的舒適磨練時再多堅持一下

思路 工作日 uml 瀏覽器 blog 理由 html 未來 建立   記得上一次這麽堅持,是在2013年11月份研一參加校運會跟大一大二的學弟比賽5000米的時候……   那次也是很難受很難受,圈數少數了一圈,為了保持第一的位置,在倒數第二圈花了大部分力氣沖到終點,結果被

7.2 客戶滑鼠訊息

        摘錄於《Windows程式(第5版,珍藏版).CHarles.Petzold 著》P223         第 6 章已經講到,Windows 只把鍵盤訊息傳送到當前具有輸入焦點的視窗。滑鼠訊息則不同:當滑鼠經過視窗或在視窗內被單擊,則即使該視窗是非活動視窗