Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проектирование интерфейса на winapi 
V
    Опции темы
Frazelli
Дата 10.2.2009, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Код

#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>

#define ID_LISTBOX    1001

HINSTANCE hInstance;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    
wchar_t szTitle[] = L"Title";
wchar_t szClassName[] = L"Window";
wchar_t szListBox[] = L"listbox";

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR , int)
{
    hInstance=hInst;
    MSG msg;
    WNDCLASS wc;
    ZeroMemory(&wc, sizeof(wc));
    wc.style=wc.cbClsExtra=wc.cbWndExtra=0;
    wc.lpfnWndProc=WndProc;
    wc.hInstance=hInst;
    wc.hCursor=LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground=GetStockBrush(LTGRAY_BRUSH);
    wc.lpszMenuName=NULL;
    wc.lpszClassName=szClassName;
    RegisterClass(&wc);

    HWND hwnd=CreateWindow(szClassName, szTitle, WS_OVERLAPPEDWINDOW | WS_VISIBLE,
        CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
        0, 0, hInst, NULL);
    ShowWindow(hwnd, SW_SHOWNORMAL);
    while (GetMessage(&msg, NULL, 0, 0))
        DispatchMessage(&msg);
    return 0;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    HWND hListBox;
    switch(msg)
    {
    case WM_CREATE:
        {
            hListBox=CreateWindow(szListBox, NULL, WS_CHILD | WS_VISIBLE | LBS_STANDARD,
            30, 80, 300, 200, hwnd, (HMENU)ID_LISTBOX, hInstance, NULL);
        }

    case WM_DESTROY:
        {
            PostQuitMessage(0);
            return 0;
        }
    default:
        return DefWindowProc(hwnd, msg, wParam, lParam);
        
    }
}


Почему окно после появления сразу исчезает? Если убрать обработку сообщения WM_CREATE, то работает.
А как тогда добавить элемент ListBox?
PM MAIL ICQ Skype   Вверх
zim22
Дата 10.2.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



закомментируй строчку 
Код

PostQuitMessage(0);

и окно не будет исчезать


--------------------
PM MAIL   Вверх
Frazelli
Дата 10.2.2009, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Цитата

закомментируй строчку 

 PostQuitMessage(0);

и окно не будет исчезать 



Но тогда программа не будет завершаться и при следующей компиляции будет ошибка.
PM MAIL ICQ Skype   Вверх
Frazelli
Дата 10.2.2009, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



return 0 не хватало. 
PM MAIL ICQ Skype   Вверх
mes
Дата 10.2.2009, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



нехватает break или return в секции case WM_CREATE:


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.