9

私は数週間作業しているMFCアプリを持っていますが、メインフレームがロードされたときに手動でサイズを設定したいのですが、誰かがこれを手に入れてくれますか、具体的にはコードをどこに置くか?

ありがとう!

4

4 に答える 4

11

内から、または派生クラスでサイズを ( でSetWindowPos())設定することもできます。という行を探し、その行の前に呼び出します。いつもやっているところです。CMainFrame::OnCreate()CWinAppInitInstancepMainFrame->ShowWindow()pMainFrame->SetWindowPos()

于 2008-10-07T13:28:44.747 に答える
3

..で画面サイズを見つけます

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_sizemain_y_sizeあなたのサイズです。

于 2008-10-07T13:09:56.250 に答える
3

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);
}
于 2008-10-07T13:16:44.817 に答える