縮小客戶區 擴大非客戶區 的方法

2021-09-07 21:03:17 字數 540 閱讀 8771

當windows收到 wm_nccalcsize 訊息時會指定客戶區大小,我們可以在這個時候設定客戶區的大小。

引數lparam是乙個nccalcsize_params結構,儲存包含三個矩形的陣列。第乙個矩形儲存視窗的客戶區。

你只要改寫這個矩形的值就可以修改客戶區的大小了。

修改了客戶區的大小後,還要響應wm_ncpaint訊息,來繪製整個非客戶區。

響應wm_nccalcsize和wm_ncpaint訊息後都必須呼叫預設視窗處理函式,以便實現預設處理。

下面是乙個(sdk)例子:(出於方便我只列出了視窗處理過程)

lresult callback wndproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)

if(message == wm_ncpaint)

return defwindowproc(hwnd, message, wparam, lparam);

}return 0;

}width是乙個巨集定義的大於0的整數,你可以自己定義它的值。

在客戶區 非客戶區和桌面畫線

來自孫鑫 vc 深入詳解 客戶區 即視類視窗 非客戶區 包括標題欄 選單欄 工具欄和狀態列。在畫圖之前,需要獲取線圖的起始點與終點。即滑鼠左鍵按下是起始點,左鍵彈起是終點。以下 中的m ptorigin均記錄在onlbuttondown函式中,m ptorigin point 一 利用platfor...

自繪非客戶區

下面是網上收集來的 實現炫彩自繪視窗非客戶區,貼出來大家參考共享.效果如下圖所示 關鍵 如下 在框架類中新增 public afx msg void onnclbuttondown uint nhittest,cpoint point afx msg void onncmousemove uint ...

NcPaint重繪非客戶區

1.需要響應wm nccalcsize訊息 2.需要響應ncpaint訊息 3.還需要響應wm size void 類名 onsize uint ntype,int cx,int cy 4.響應active 用於繪製不同情況下的標題。void 類名 onactivate uint nstate,cw...