Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2009, 20:06   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию GetWindowLong, GWL_SETYLE что такое?

начал работу над WinApi.
вот разбираю листинг из книжки и непонятна одна вещь:
Код:
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   hInst = hInstance; // Store instance handle in our global variable

   hWnd = CreateWindow(szWindowClass, szTitle, WS_VISIBLE,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

   if (!hWnd)
   {
      return FALSE;
   }

   int Style;
   Style = GetWindowLong(hWnd, GWL_SETYLE);
   Style=Style || WS_CAPTION;
   Style=Style || WS_SYSMENU;
   SetWindowLong(hWnd, GWL_STYLE, Style);

   return TRUE;
}
   Style=Style || WS_CAPTION;
   Style=Style || WS_SYSMENU; что это такое?
GWL_SETYLE - что это за константа?

Последний раз редактировалось Stilet; 16.10.2009 в 08:46.
Dimarik вне форума Ответить с цитированием
Старый 14.10.2009, 20:30   #2
jungle
Пользователь
 
Аватар для jungle
 
Регистрация: 22.11.2008
Сообщений: 65
По умолчанию

Код:
   Style = GetWindowLong(hWnd, GWL_STYLE); // получить стиль окна hWnd в переменную Style 
   Style = Style || WS_CAPTION;                            // также как i:=i+1
  
   SetWindowLong(hWnd, GWL_STYLE, Style);      // установить окну hWnd стиль из переменной Style
Вместо GWL_STYLE можно использовать другие константы, например:

GWL_WNDPROC - установить/получить адрес оконной процедуры
GWL_HINSTANCE - установить/получить дескриптор экземпляра программы
GWL_ID - установить/получить идентификатор окна
jungle вне форума Ответить с цитированием
Старый 15.10.2009, 18:10   #3
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox( NULL, "Hellow!", "Hellow From message Box",MB_OK);
return 0;
}
написал свой первый проект в Win32Api. толком ничё не понял.
в MSDN написано что MessageBox принимает 3 аргумента.
может быть то что в message Box 4 аргумента как-то связано с тем, что int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hRrevInstance,
и самая главная проблема с комплятором. не очень понятно где ошибка. он вообще пишет:
1>c:\documents and settings\дима\мои документы\visual studio 2008\projects\project1\hellow\hello w.cpp(5) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [8]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>Build log was saved at "file://c:\Documents and Settings\Дима\Мои документы\Visual Studio 2008\Projects\Project1\Hellow\Debug \BuildLog.htm"
1>Hellow - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Dimarik вне форума Ответить с цитированием
Старый 15.10.2009, 21:10   #4
jungle
Пользователь
 
Аватар для jungle
 
Регистрация: 22.11.2008
Сообщений: 65
По умолчанию

да возьми готовый пример в гугле и не мучайся
jungle вне форума Ответить с цитированием
Старый 16.10.2009, 01:53   #5
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

проблема у тебя в том, что MessageBox - это юникодная версия. Или пиши
MessageBoxA(NULL, "Hellow!", "Hellow From message Box",MB_OK);
или добавляй L перед строками MessageBox(NULL,L"Hellow!",L"Hellow From message Box",MB_OK);

Цитата:
в MSDN написано что MessageBox принимает 3 аргумента.
наверное ты не дочитал? родной API-шный мессаджбокс требует 4 аргумента, а вот MFC-шный просит 3.
counter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что такое @? k1r1ch Общие вопросы Delphi 11 11.09.2009 20:15
Что такое SE LOPKOT HTML и CSS 5 31.08.2009 21:50
то такое мастерство в программировании, что такое мастер программист и что он может? Cezar Свободное общение 29 02.06.2007 23:48