Установите размер окна в приложении MFC - PullRequest
3 голосов
/ 22 декабря 2011

Этот вопрос может показаться наивным для многих пользователей, но я новичок в MFC и мне нужно указание.Я хочу установить определенный размер окна SDI, но мне не удается это сделать.Я пытаюсь код в классе CMainFrame:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWndEx::PreCreateWindow(cs) )
    return FALSE;

 cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;

 cs.cy = 600; 
 cs.cx = 600; 
 cs.y = ((cs.cy * 3) - cs.cy) / 2; 
 cs.x = ((cs.cx * 3) - cs.cx) / 2;


 return CFrameWnd::PreCreateWindow(cs); 
}

Окно все еще сохраняет свой размер, хотя без каких-либо изменений.

Насколько я могу, я могу переопределить соответствующую функцию в CWndкласс, чтобы получить тот же результат.Учитывая, что я до сих пор не использовал класс CWnd в своей программе, как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2014

Ваш класс действительно получен из CFrameWndEx?И это тот класс, который у вас есть в строке IMPLEMENT_DYNANIC / IMPLEMENT_DYNCREATE?А в строке BEGIN_MESSSAGE_MAP?

Подумайте также о добавлении ON_WM_CREATE к вашей карте сообщений и его OnCreate метода для предоставления других возможностей:

  • Сделайте аналогичноедело в том, что вы делаете в этом новом методе.

  • Используйте SetWindowPos здесь

0 голосов
/ 22 декабря 2011

Переместите свой код над вызовом CFrameWndEx::PreCreateWindow

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...