Как я могу рассчитать клиентскую область MFC CDialog без ее отображения? - PullRequest
0 голосов
/ 23 октября 2009

Как я могу получить Window Rect CDialog, который основан на шаблоне диалога. Диалог не виден и не может быть виден

Ответы [ 2 ]

1 голос
/ 23 октября 2009

Это может быть сложно с CDialog, потому что, если вы не показываете CDialog, дескриптор окна не создается, и вы не можете вызвать GetClientRect.

Могу ли я предложить вместо этого создать CreateDialogIndirect, чтобы создать диалоговое окно, тогда вы можете получить прямоугольник клиента. Вам не нужно показывать диалог. Я думаю, что пока дескриптор окна создан, GetClientRect должен работать. Хотя я не эксперт, и прошло много лет с тех пор, как я написал код MFC.

0 голосов
/ 24 октября 2009

Ну ...

В Windows API-land вы можете загрузить ресурс самостоятельно (FindResourceEx, LoadResource), понять двоичную структуру ресурса шаблона диалога (некоторые подсказки на http://blogs.msdn.com/oldnewthing/archive/2004/06/22/162360.aspx),) преобразовать размер диалога в шаблоне диалога от диалоговых единиц до пикселей (см. http://msdn.microsoft.com/en-us/library/ms645475(VS.85).aspx).

Мне было бы любопытно, почему вы хотите это сделать.

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