Здравствуйте, SVV, Вы писали:
Где-то давно в какой-то конфе видел такой код, включает только <windows.h>
Кто-то считает извратом, кому-то нравится
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#define ID_EDIT1 1000
#define ID_EDIT2 1001
#define ID_MESSAGE 1002
struct DIALOG
{
DLGTEMPLATE dlgTemplate;
WORD wMenu;
WORD wClass;
WCHAR szTitle[9];
WORD wFontSize;
WCHAR szFontFaceName[7];
DLGITEMTEMPLATE ctrlEdit1;
WORD wClassE1;
WORD wClassE1Id;
WCHAR szTitleE1;
WORD wDataE1;
WORD wAlign1;
DLGITEMTEMPLATE ctrlEdit2;
WORD wClassE2;
WORD wClassE2Id;
WCHAR szTitleE2;
WORD wDataE2;
WORD wAlign2;
DLGITEMTEMPLATE ctrlButtonOk;
WORD wClassBO;
WORD wClassBOId;
WCHAR szTitleBO[3];
WORD wDataBO;
WORD wAlign3;
DLGITEMTEMPLATE ctrlButtonMdg;
WORD wClassBM;
WORD wClassBMId;
WCHAR szTitleBM[9];
WORD wDataBM;
};
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' },
{
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_BORDER | WS_TABSTOP | WS_GROUP | ES_AUTOHSCROLL,
0,
7, 7, 117, 14, ID_EDIT1,
},
0xFFFF,
0x0081,
L'\0',
0,
0,
{
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL,
0,
7, 24, 117, 14, ID_EDIT2,
},
0xFFFF,
0x0081,
L'\0',
0,
0,
{
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_TABSTOP | WS_GROUP | BS_DEFPUSHBUTTON,
0,
129, 7, 50, 14, IDOK,
},
0xFFFF,
0x0080,
{ L'O', L'K', L'\0' },
0,
0,
{
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_TABSTOP | BS_PUSHBUTTON,
0,
129, 24, 50, 14, ID_MESSAGE,
},
0xFFFF,
0x0080,
{ L'&', L'M', L'e', L's', L's', L'a', L'g', L'e', L'\0' },
0,
};
int CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_COMMAND:
if (IDOK == LOWORD(wParam) || IDCANCEL == LOWORD(wParam))
{
EndDialog(hwndDlg, LOWORD(wParam));
return TRUE;
}
if (ID_MESSAGE == LOWORD(wParam))
{
MessageBox(NULL, TEXT("This is simple message box."), TEXT("Message Box"), MB_OKCANCEL | MB_SERVICE_NOTIFICATION); /*MB_OK | MB_ICONINFORMATION |*/
return TRUE;
}
if (ID_EDIT1 == LOWORD(wParam) && EN_CHANGE == HIWORD(wParam))
{
TCHAR szText[1024];
HWND hwndEdit1 = GetDlgItem(hwndDlg, ID_EDIT1);
HWND hwndEdit2 = GetDlgItem(hwndDlg, ID_EDIT2);
GetWindowText(hwndEdit1, szText, 1024);
SetWindowText(hwndEdit2, szText);
}
}
return FALSE;
}
int main()
{
DialogBoxIndirect(0, &dialog.dlgTemplate, GetDesktopWindow(), DialogProc);
return 0;
}
Вопрос закрыт. Хочу только сказать что я пользовался поиском, и на эту тему не вышел. Просто нужно учитывать что не все одинаково хорошо пользуются поиском (убедился на примере окружающих и себя), професионализм в программировании (или любой др. области) вовсе не означает профессиональное владение поиском, и наоборот. Это я к тому что это нужно учитывать, правила rsdn я знаю и стараюсь не нарушать.