![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Лёша |
|
|||
Unregistered |
Привет!
Хочу сделать меню в программе ( BorlandC 5) Делаю так 1. Становлюсь Project Manager на файл .rc -> 2 раза клик->открывается окно 2. В окне правой кнопкой мышки -> New Resource->MENU название "MENU" 3. Дальше составляю его каким нужно Как теперь мне его вставить в прогу, т.к. почему-то после Building и Run его не видно, пустое окно .... #include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; #pragma argsused int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static char szAppName[] = "Пример" ; HWND hwnd ; MSG msg ; WNDCLASSEX wndclass ; HMENU hMenu; wndclass.cbSize = sizeof (wndclass) ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; // Èêîíêà wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; //Êóðñîð wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = "MENU"; wndclass.lpszClassName = szAppName ; wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ; RegisterClassEx (&wndclass) ; hwnd = CreateWindow (szAppName, "Пример", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL) ; ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ; } LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { HDC hdc ; PAINTSTRUCT ps ; RECT rect ; switch (iMsg) { case WM_PAINT : hdc = BeginPaint (hwnd, &ps) ; GetClientRect (hwnd, &rect) ; DrawText (hdc, "что-то написано ", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; EndPaint (hwnd, &ps) ; return 0 ; case WM_DESTROY : PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hwnd, iMsg, wParam, lParam) ; } Вот текст меню produced by Borland Resource Workshop *****************************************************************************/ #define IDM_MENU1 1 IDM_MENU1 MENU { POPUP "&МЕНЮ" { MENUITEM "&Text1", 101 MENUITEM "&Text2", 104 MENUITEM SEPARATOR MENUITEM SEPARATOR MENUITEM "&Exit", 108 } POPUP "Help" { MENUITEM SEPARATOR MENUITEM "О программе", 903 } } Буду очень благодарен за ответ! До свидания. |
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
Так тебе просто нужно создать обыкновенное меню?
-------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
Finder Adventuries |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.9.2002 Репутация: нет Всего: нет |
Klin , я уже ответил Лёше на вопрос (у него была просто ошибка в строке
wndclass.lpszMenuName = "MENU") Сейчас меню появилось, всё нормально ; а как теперь сделать , чтобы после выбора конкретного подпункта меню вызывался , к примеру MessageBox? |
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
С чем именно, с какими кнопками?
-------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
Лёша |
|
|||
Unregistered |
1) когда выб. пункт меню "Text1 "
должно появл-ся MessageBox(0, "RERAD", "Text", MB_OK | MB_ICONEXCLAMATION); 2) когда выб. пункт меню "О программе" - MessageBox(0, "RERAD", "Copyright Ivanov ", MB_OK | MB_ICONEXCLAMATION); не знаю как сделать :-( Помогите пожалуйста! |
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
Зачем MessageBox? Можно, чтобы форма появилась, а в ней содержимое!
Что именно? -------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
Лёша |
|
|||
Unregistered |
Уже сделал (см. ниже) теперь на выбор пунктов меню реагирует нормально (кстати MessageBox мне нужен был только чтоб выяснить как это работает)
Да, Klin, на самом деле мне нужно выводить в это же окно отрывок текста, но пока не могу :-(( может подскажете как это сделать ? LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { HDC hdc ; PAINTSTRUCT ps ; RECT rect ; switch(wParam) // { case 101:// text1 //MessageBox(0, "RERAD", "Lab1", MB_OK | MB_ICONEXCLAMATION); // <-Здесь // бы текст выводить ...??? // Функция DrawText (hdc, "..... ", -1, &rect, // DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; // почему-то не выводится ....?? break; |
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
Куда именно? -------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
Лёша |
|
|||
Unregistered |
Куда выводить - всё равно, (можно в центр создаваемого окна)...
|
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
Нет, я имею ввиду во что?
-------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
Finder Adventuries |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.9.2002 Репутация: нет Всего: нет |
В
DrawText (hdc, "ТЕКСТ.... ", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; |
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
-------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
Finder Adventuries |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 13.9.2002 Репутация: нет Всего: нет |
Klin , я послал , но почта вернулась с сообщением
Remote host said: 550 5.7.1 Policy analysis reported: Spam source. Nonexistent administrators email (XELENA) (2002/10/29) rcpt=<[email protected]> я сделал тему , про TextOut , может это поможет ... |
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
Понятно, разберусь.
-------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |