Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Стандартная заготовка 
:(
    Опции темы
1122
Дата 17.11.2008, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Может у кого есть стандандартная заготовка окна в Win32? Ну, там... менюшка, полосы прокрутки, строка состояния???
PM MAIL   Вверх
BorisVorontsov
Дата 18.11.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

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



Есть тестовый проектик -- окно и 5 кнопок:

Код

#include <windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstans,HINSTANCE hPrev,LPSTR lpCmdLine,int nCmdShow)
{
    HWND hMainWnd;
    char szClassName[]="MyClass";
    MSG msg;
    WNDCLASSEX wc;
    wc.cbSize =sizeof(wc);
    wc.style =CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc =WndProc;
    wc.cbClsExtra =0;
    wc.cbWndExtra =0;
    wc.hInstance =hInstans;
    wc.hIcon =LoadIcon(NULL,IDI_APPLICATION);
    wc.hCursor =LoadCursor(NULL,IDC_ARROW);
    wc.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName =NULL;
    wc.lpszClassName =szClassName;
    wc.hIconSm =LoadIcon(NULL,IDI_APPLICATION);
    if(!RegisterClassEx(&wc))
    {
        MessageBox(NULL, "Error", "Error",MB_OK);
        return 0;
    }
 
    hMainWnd = CreateWindow(szClassName,"My window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
        (HWND)NULL,(HMENU)NULL,(HINSTANCE)hInstans,NULL);
    
    HWND bt1=CreateWindowEx(0, "BUTTON", "Button", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 100, 82, 30,hMainWnd,NULL,hInstans,NULL);
    HWND bt2=CreateWindowEx(0, "BUTTON", "Button", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 140, 82, 30,hMainWnd,NULL,hInstans,NULL);
    HWND bt3=CreateWindowEx(0, "BUTTON", "Button", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 180, 82, 30,hMainWnd,NULL,hInstans,NULL);
    HWND bt4=CreateWindowEx(0, "BUTTON", "Button", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 220, 82, 30,hMainWnd,NULL,hInstans,NULL);
    HWND bt5=CreateWindowEx(0, "BUTTON", "Button", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 260, 82, 30,hMainWnd,NULL,hInstans,NULL);
    
    ShowWindow(hMainWnd,nCmdShow);
    while(GetMessage(&msg,NULL,0,0))
    {
        if (!IsDialogMessage(hMainWnd, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
    return msg.wParam; 
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
    HDC hDC;
    PAINTSTRUCT ps;
    RECT rect;
    switch(uMsg)
    {
    case WM_PAINT:
        hDC=BeginPaint(hWnd, &ps);
        GetClientRect(hWnd, &rect);
        DrawText(hDC, "исключительно для тестов",-1, &rect, DT_SINGLELINE | DT_CENTER |DT_VCENTER);
        EndPaint(hWnd,&ps);
        break;
    case WM_CLOSE:
        DestroyWindow(hWnd);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd,uMsg,wParam,lParam);
    }
 return 0;
}


Это сообщение отредактировал(а) BorisVorontsov - 18.11.2008, 11:01


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

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


 




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


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

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