作者gts2590 (我不是竹中人)
看板HCHS_BioClub
標題Re: [情報] MFC Dlg.DoModal 調整大小
時間Wed Nov 28 11:37:32 2012
怒刪~
那篇太長了= =
來個簡單版本的XD
SetWindowPos()
用這個函數就好啦XD
SetWindowPos()的細節請參考 winuser.h
SetWindowPos(const* CWnd hWndInsertAfter, int x, int y,
int cx, int cy, UINT nflags)
hWndInsertAfter 是要調整的東西
以DLG為例
CWnd * dlgsize;
dlgsize = GetDlgItem (IDD_OOXX~);
int x,int y 是左上角座標
int cx, int cy 是視窗大小
UINT nflags 就參考 winuser.h 這隻檔案吧
第4046行開始(請善用"移至"
SWP_NOSIZE 保持當前大小(cx和cy會被忽略)
SWP_NOMOVE 保持當前位置 (x和y會被忽略)
SWP_NOZORDER 保持窗口在列表的當前位置(hWndInsertAfter将被忽略)
SWP_NOREDRAW 窗口不自動重畫
SWP_NOACTIVATE 不激活窗口
SWP_FRAMECHANGED
發送WM_NCCALCSIZE消息進入窗口,即使窗口的大小没有發生改變。
如果不指定这個参数,消息WM_NCCALCSIZE只有在窗口大小發生改變時才發送
SWP_SHOWWINDOW 顯示窗口
SWP_HIDEWINDOW 隱藏窗口
SWP_NOCOPYBITS 屏蔽客户區域
SWP_NOOWNERZORDER 不改變所有窗口的位置和排列順序
SWP_NOSENDCHANGING 防止這個窗口接受WM_WINDOWPOSCHANGING消息
SWP_DRAWFRAME 圍繞窗口畫一个框
SWP_NOREPOSITION 與SWP_NOOWNERZORDER標記相同
基本上不會用到那麼多拉 冏
以下騙字數
CWnd *testsizedlg = NULL;
testsizedlg = GetDlgItem(IDD_OOXX_ooxx);
SetWindowPos(testsizedlg, 0, 0, 700, 700, SWP_NOMOVE);
以上~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.179.22
→ gts2590:208P = = 騙字數騙真大XD 11/28 11:38
推 frank6780:嫌多可以轉給我 XD 11/28 11:39
→ gts2590:不要= = 好歹這也是我手打的 11/28 11:45