Форум программистов, компьютерный форум CyberForum.ru

Вопрос по Winapi - C++

Восстановить пароль Регистрация
 
Studentus
0 / 0 / 0
Регистрация: 06.11.2011
Сообщений: 6
06.11.2011, 18:46     Вопрос по Winapi #1
Есть следующее задание:
Написать программу, позволяющую пользователю при помощи выпадающего списка (стандартный класс окна COMBOBOX) выбрать количество квадратов (от 5 различных значений, легче чётное значение), которые будут рисоваться в рабочей части главного и дочернего окна в зависимости от его размера. То есть требуется "замостить" рабочую часть окна.
Но я никогда не работал с winapi и не знаю с чего начать. Пытался найти примеры, но в основном есть только описание самих ф-ий создания combobox, мне же не понятно, что нужно писать в начале программы (какие библиотеки подключать, что в winapi вместо main() и тд)
Заранее всем спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2011, 18:46     Вопрос по Winapi
Посмотрите здесь:

Вопрос по WINAPI C++
C++ WinAPI
C++ Вопрос по массивав, "институтский" вопрос.
C++ WinApi
C++ WINAPI
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
06.11.2011, 18:57     Вопрос по Winapi #2
Цитата Сообщение от Studentus Посмотреть сообщение
Есть следующее задание:
Написать программу, позволяющую пользователю при помощи выпадающего списка (стандартный класс окна COMBOBOX) выбрать количество квадратов (от 5 различных значений, легче чётное значение), которые будут рисоваться в рабочей части главного и дочернего окна в зависимости от его размера. То есть требуется "замостить" рабочую часть окна.
Но я никогда не работал с winapi и не знаю с чего начать. Пытался найти примеры, но в основном есть только описание самих ф-ий создания combobox, мне же не понятно, что нужно писать в начале программы (какие библиотеки подключать, что в winapi вместо main() и тд)
Заранее всем спасибо.
Если вам преподаватель не давал тему программирования с использованием WinAPI, то и задания такого он не мог дать!
Studentus
0 / 0 / 0
Регистрация: 06.11.2011
Сообщений: 6
06.11.2011, 19:24  [ТС]     Вопрос по Winapi #3
Однако все же дал)
Сыроежка
Заблокирован
06.11.2011, 19:25     Вопрос по Winapi #4
Цитата Сообщение от Studentus Посмотреть сообщение
Однако все же дал)
Не надо вводить нас в заблуждение!
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
06.11.2011, 19:32     Вопрос по Winapi #5
Цитата Сообщение от Studentus Посмотреть сообщение
мне же не понятно, что нужно писать в начале программы (какие библиотеки подключать, что в winapi вместо main() и тд)
Если пользуешься MSVS, можешь создать проект GUI и будет создан код для простого окна, который будет компилироваться и запускаться. Там и посмотри что подключается и как выглядет main. А вообще странно, что не смог ни чего нагуглить, примеров полно.

Во многих других IDE можно сделать так же.

Добавлено через 3 минуты
_тыц_
Bers
06.11.2011, 19:38
  #6

Не по теме:

просто он ничего и не гуглил, так, нахаляву решил прокатить

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2011, 20:26     Вопрос по Winapi
Еще ссылки по теме:

C++ Вопрос по хеловорду WinAPI
WinAPI C++
C++ Вопрос для тех, кто работал со структурой doc-файла через WinAPI

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
06.11.2011, 20:26     Вопрос по Winapi #7
Не надо никакого MSVS вот держи код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <windows.h>
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
HINSTANCE g_hinst;
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
  HWND hwnd;
  MSG  msg ;
  WNDCLASS wc = {0};
  wc.lpszClassName = TEXT("Application");
  wc.hInstance     = hInstance ;
  wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE);
  wc.lpfnWndProc   = WndProc ;
  wc.hCursor       = LoadCursor(0,IDC_ARROW);
 
  g_hinst = hInstance;
 
  RegisterClass(&wc);
  hwnd = CreateWindow(wc.lpszClassName, TEXT("Combo Box"),WS_OVERLAPPEDWINDOW | WS_VISIBLE,100, 100, 270, 170, 0, 0, hInstance, 0);
 
 
  while( GetMessage(&msg, NULL, 0, 0)) {
    DispatchMessage(&msg);
  }
  return (int) msg.wParam;
}
 
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
 
  static HWND hwndCombo, hwndStatic;
  const TCHAR *items[] = { TEXT("programina_1"), TEXT("programina_2"),TEXT("programina_3"), TEXT("programina_4") };
  int i;
  LRESULT sel = 0;
 
  switch(msg)
  {
      case WM_CREATE:
            hwndCombo = CreateWindow(TEXT("combobox"), NULL, WS_CHILD | WS_VISIBLE | CBS_DROPDOWN,10, 10, 120, 110, hwnd, NULL, g_hinst, NULL);
            hwndStatic = CreateWindow(TEXT("static"), TEXT(""),WS_CHILD | WS_VISIBLE,150, 80, 90, 25, hwnd, NULL, g_hinst, NULL);
 
            for ( i = 0; i < 4; i++ ) {
                SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM) items[i]);
            }
            break;
 
      case WM_COMMAND:
           if ( HIWORD(wParam) == CBN_SELCHANGE) {
                sel = SendMessage(hwndCombo, CB_GETCURSEL, 0, 0);
                SetWindowText(hwndStatic, items[sel]);
                SetFocus(hwnd);
           }
           break;
 
      case WM_DESTROY:
          PostQuitMessage(0);
          break;
  }
  return DefWindowProc(hwnd, msg, wParam, lParam);
}

Дочерние сам сделаешь..

Добавлено через 38 минут
Если кто то интересуется cозданием контролов для программ WinApi без всяхих там MFC и прочей бяки:
http://zetcode.com/tutorials/winapi/
Yandex
Объявления
06.11.2011, 20:26     Вопрос по Winapi
Ответ Создать тему
Опции темы

Текущее время: 15:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru