Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 06.11.2011
Сообщений: 6
1

Вопрос по Winapi

06.11.2011, 18:46. Показов 866. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть следующее задание:
Написать программу, позволяющую пользователю при помощи выпадающего списка (стандартный класс окна COMBOBOX) выбрать количество квадратов (от 5 различных значений, легче чётное значение), которые будут рисоваться в рабочей части главного и дочернего окна в зависимости от его размера. То есть требуется "замостить" рабочую часть окна.
Но я никогда не работал с winapi и не знаю с чего начать. Пытался найти примеры, но в основном есть только описание самих ф-ий создания combobox, мне же не понятно, что нужно писать в начале программы (какие библиотеки подключать, что в winapi вместо main() и тд)
Заранее всем спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2011, 18:46
Ответы с готовыми решениями:

Вопрос по хеловорду WinAPI
Здравствуйте. Недавно нашел книгу по программированию в Win32API. Книга старая, 2003 года. Там...

WinAPi в С++(Вопрос новичка)
Всем Доброго время суток! Решыл изучать винапи и в первом же примере кода столкнулся з такой вот...

Вопрос по boost или Qt: нужен аналог функции WinApi GetModuleFileName()
Цель: нужна функция, работающая на платформах *nix и win, которая бы определяла местоположение...

Вопрос для тех, кто работал со структурой doc-файла через WinAPI
Ниже приведён кусок проги : // . . . . . . if (stat.type==STGTY_STREAM) //если обнаружили...

6
Заблокирован
06.11.2011, 18:57 2
Цитата Сообщение от Studentus Посмотреть сообщение
Есть следующее задание:
Написать программу, позволяющую пользователю при помощи выпадающего списка (стандартный класс окна COMBOBOX) выбрать количество квадратов (от 5 различных значений, легче чётное значение), которые будут рисоваться в рабочей части главного и дочернего окна в зависимости от его размера. То есть требуется "замостить" рабочую часть окна.
Но я никогда не работал с winapi и не знаю с чего начать. Пытался найти примеры, но в основном есть только описание самих ф-ий создания combobox, мне же не понятно, что нужно писать в начале программы (какие библиотеки подключать, что в winapi вместо main() и тд)
Заранее всем спасибо.
Если вам преподаватель не давал тему программирования с использованием WinAPI, то и задания такого он не мог дать!
0
0 / 0 / 0
Регистрация: 06.11.2011
Сообщений: 6
06.11.2011, 19:24  [ТС] 3
Однако все же дал)
0
Заблокирован
06.11.2011, 19:25 4
Цитата Сообщение от Studentus Посмотреть сообщение
Однако все же дал)
Не надо вводить нас в заблуждение!
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,116
Записей в блоге: 2
06.11.2011, 19:32 5
Цитата Сообщение от Studentus Посмотреть сообщение
мне же не понятно, что нужно писать в начале программы (какие библиотеки подключать, что в winapi вместо main() и тд)
Если пользуешься MSVS, можешь создать проект GUI и будет создан код для простого окна, который будет компилироваться и запускаться. Там и посмотри что подключается и как выглядет main. А вообще странно, что не смог ни чего нагуглить, примеров полно.

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

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

Не по теме:

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

0
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
06.11.2011, 20:26 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/
1
06.11.2011, 20:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2011, 20:26
Помогаю со студенческими работами здесь

Вопрос по SetParent (поэтому, наверное, это вопрос к NickStaves)
Есть набор форм, назовём их 'интерфейсными'. Есть отдельная форма, назовём её 'хранилищем'. Сама...

[ВОПРОС]: Меню и вопрос при регистрации
Помогите пожалуйста. У меня vbulletin 4.0.7 и после установки в верхнем меню есть лишняя навигация....

Вопрос о картинках, вопрос о формулах
Всем доброго времени суток! Как обычно глупые вопросы... Вопрос первый, с сайта копируется...

Вопрос по массивав, "институтский" вопрос.
Готовлюсь к летней сессии по программированию. С++ Есть такая вот задачка (привожу как есть) ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru