|
|
|
Win Api диалог.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Как средствами windows api создать окно диалога, с использованием шаблона в памяти. Я пробовал следующим образом. #include "stdafx.h" #define WIN32_LEAN_AND_MEAN #include <windows.h> struct DIALOG { DLGTEMPLATE dlgTemplate; WORD wMenu; WORD wClass; WCHAR szTitle[9]; WORD wFontSize; WCHAR szFontFaceName[7]; }; DIALOG dialog = { { WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_MODALFRAME | DS_CENTER | DS_SETFONT, 0, 4, 0, 0, 186, 46, }, 0x0000, 0x0000, { L'P', L'u', L'r', L'e', L' ', L'A', L'P', L'I', L'\0' }, 8, { L'T', L'a', L'h', L'o', L'm', L'a', L'\0' }, }; int CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_COMMAND: if (IDCANCEL == LOWORD(wParam)) { EndDialog(hwndDlg, LOWORD(wParam)); return TRUE; } } return FALSE; } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int) { DialogBoxIndirect(hInstance, &dialog.dlgTemplate, GetDesktopWindow(), DialogProc); return 0; } (Код не мой) При этом окно не показывается? Почему не могу понять. Спасибо за ответ Если можно дайте ссылку на пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2004, 09:50 |
|
||
|
Win Api диалог.
|
|||
|---|---|---|---|
|
#18+
Молодец :) У меня чё-то никогда храбрости не хватало руками шаблон забабахать(да и не нужен он был вопчем-то). Попробуй WS_VISIBLE в свойства поставить ;) Если не поможет, посмотри спаем, вообще он создался или нет. Если нет, тогда смотри ГетЛастЕррор() PS. Пример, часом, не с msdn'а? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2004, 11:52 |
|
||
|
Win Api диалог.
|
|||
|---|---|---|---|
|
#18+
ИМХО это макрос, вокруг функции CreateWindowEx, после вызова которой первое что она делает это посылает сообщение WM_INITDIALOG в опреределнную для макроса winproc. А там, как мне кажется, тебе надо поставить вызов SetWindowPos. Кстати, опять ИМХО, макрос не вернет управление дальше пока в dialogproc не будет вызван EndDialog. все это есть в MSDN. Кстати там пример создания шаблона в памят более емкий и запутанный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2004, 12:12 |
|
||
|
Win Api диалог.
|
|||
|---|---|---|---|
|
#18+
вот живой примерчик http://cvs.sourceforge.net/viewcvs.py/vim/vim/src/gui_w32.c?rev=1.98 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2004, 12:30 |
|
||
|
Win Api диалог.
|
|||
|---|---|---|---|
|
#18+
Пример я взял отсюда . Он рабочий. http://www.rsdn.ru/Forum/Message/24515.htm После того как я вырезал ненужную мне часть прога перестала идти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2004, 12:52 |
|
||
|
Win Api диалог.
|
|||
|---|---|---|---|
|
#18+
Вобчем самое поразительное при вызове макроса отладчик даже не заходит внутрь функции обработки сообщений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2004, 15:31 |
|
||
|
Win Api диалог.
|
|||
|---|---|---|---|
|
#18+
вобчем все просто - выравнивание и размер структуры имеют сильное значение. Видишь незаметную четверочку после нолика, который идет вслед за стилями окна - это кол-во итемов на диалоге - поставь верное значение и все будет путем. Я сделал и у меня все заработало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2004, 16:32 |
|
||
|
Win Api диалог.
|
|||
|---|---|---|---|
|
#18+
Ну вы блин, даёте :) Вы не читали описание к функции, перед тем как её звать? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 07:22 |
|
||
|
Win Api диалог.
|
|||
|---|---|---|---|
|
#18+
Действительно как я не заметил... :) Благодарю всех за ответы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 09:51 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=421&tid=2033944]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 356ms |

| 0 / 0 |
