私は数週間作業しているMFCアプリを持っていますが、メインフレームがロードされたときに手動でサイズを設定したいのですが、誰かがこれを手に入れてくれますか、具体的にはコードをどこに置くか?
ありがとう!
内から、または派生クラスでサイズを ( でSetWindowPos()
)設定することもできます。という行を探し、その行の前に呼び出します。いつもやっているところです。CMainFrame::OnCreate()
CWinApp
InitInstance
pMainFrame->ShowWindow()
pMainFrame->SetWindowPos()
..で画面サイズを見つけます
CRect rect;
SystemParametersInfo(SPI_GETWORKAREA,0,&rect,0);
screen_x_size=rect.Width();
screen_y_size=rect.Height();
これらの値を使用して、ウィンドウの X と Y のサイズを計算してから..
::SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,main_x_size,main_y_size,SWP_NOZORDER);
どこmain_x_size
とmain_y_size
あなたのサイズです。
PreCreateWindowを探していると思いますが、アプリはダイアログ ベースではありません。
これは CWnd クラスの仮想メンバー関数で、ウィンドウが作成される直前にフレームワークによって呼び出されます。したがって、変更を加えるのに適した場所です。
次のように書く必要があります。
BOOL CMyWindow::PreCreateWindow(CREATESTRUCT& cs)
{
cs.cy = 640; // width
cs.cx = 480; // height
cs.y = 0; // top position
cs.x = 0; // left position
// don't forget to call base class version, suppose you derived you window from CWnd
return CWnd::PreCreateWindow(cs);
}