Пятница, 29 Марта 2024, 00:16

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » DevС++, функция GetStockObject
DevС++, функция GetStockObject
ТритонДата: Вторник, 24 Апреля 2012, 05:52 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Code
//=================================================================================================
#include <windows.h>
#include <fstream.h>
#include <iostream.h>
//=================================================================================================
std::ofstream    Log;
//=================================================================================================
bool             InitApplication           (HINSTANCE  Instance   );
//=================================================================================================
LRESULT CALLBACK WindowProcedureMainWindow (HWND       Window     ,
                     UINT       Message    ,
                     WPARAM     First      ,
                     LPARAM     Second     );
//=================================================================================================
int  WINAPI      WinMain                   (HINSTANCE  Instance   ,
                     HINSTANCE  Previus    ,
                     LPSTR      CommandLine,
                     int        Show       )
{
   Log.open("Log.Log");
   Log<<"WinMain                  ="<<(void *)WinMain                  <<"."<<endl;   
   Log<<"InitApplication          ="<<(void *)InitApplication          <<"."<<endl;
   Log<<"WindowProcedureMainWindow="<<(void *)WindowProcedureMainWindow<<"."<<endl;   
   Log<<"DefWindowProc            ="<<(void *)DefWindowProc            <<"."<<endl;    
   Log<<"WinMain is starting."<<endl;
   Log<<"Instance   ="<<(void *)Instance<<" at "<<(void *)&Instance<<"."<<endl;
   Log<<"Previus    ="<<(void *)Previus<<" at "<<(void *)&Previus<<"."<<endl;
   Log<<"CommandLine=\""<<CommandLine<<"\" at "<<(void *)CommandLine<<", pointer at "<<(void *)&CommandLine<<"."<<endl;
   Log<<"Show       ="<<Show<<" at "<<(void *)&Show<<"."<<endl;
   if (InitApplication(Instance))
   {
   }
   Log.close();
   return 0;
}
//=================================================================================================
bool             InitApplication           (HINSTANCE  Instance   )
{
   char ApplicationName[16]="Sea jackals";
   WNDCLASSEX WindowClass;
   Log<<"InitApplication is starting."<<endl;
   Log<<"ApplicationName=\""<<ApplicationName<<"\" at "<<(void *)ApplicationName<<", pointer at "<<(void *)&ApplicationName<<"."<<endl;
   WindowClass.cbSize       =        sizeof        (WindowClass                 );
   WindowClass.style        =        CS_HREDRAW|
                     CS_VREDRAW;
   WindowClass.lpfnWndProc  =        WindowProcedureMainWindow;
   WindowClass.cbClsExtra   =        0;
   WindowClass.cbWndExtra   =        0;
   WindowClass.hInstance    =        Instance;
   WindowClass.hIcon        =        LoadIcon      (NULL       , IDI_APPLICATION);
   WindowClass.hCursor      =        LoadCursor    (NULL       , IDC_ARROW      );
   WindowClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH                 );
   Log<<"WindowClass at "<<(void *)&WindowClass<<"."<<endl;
   Log<<"WindowClass.cbSize       ="<<        WindowClass.cbSize       <<" at "<<(void *)&WindowClass.cbSize       <<"."<<endl;
   Log<<"WindowClass.style        ="<<        WindowClass.style        <<" at "<<(void *)&WindowClass.style        <<"."<<endl;
   Log<<"WindowClass.lpfnWndProc  ="<<(void *)WindowClass.lpfnWndProc  <<" at "<<(void *)&WindowClass.lpfnWndProc  <<"."<<endl;
   Log<<"WindowClass.cbClsExtra   ="<<        WindowClass.cbClsExtra   <<" at "<<(void *)&WindowClass.cbClsExtra   <<"."<<endl;
   Log<<"WindowClass.cbWndExtra   ="<<        WindowClass.cbWndExtra   <<" at "<<(void *)&WindowClass.cbWndExtra   <<"."<<endl;
   Log<<"WindowClass.hInstance    ="<<(void *)WindowClass.hInstance    <<" at "<<(void *)&WindowClass.hInstance    <<"."<<endl;
   Log<<"WindowClass.hIcon        ="<<(void *)WindowClass.hIcon        <<" at "<<(void *)&WindowClass.hIcon        <<"."<<endl;
   Log<<"WindowClass.hCursor      ="<<(void *)WindowClass.hCursor      <<" at "<<(void *)&WindowClass.hCursor      <<"."<<endl;
   Log<<"WindowClass.hbrBackground="<<(void *)WindowClass.hbrBackground<<" at "<<(void *)&WindowClass.hbrBackground<<"."<<endl;
   return true;
}
//=================================================================================================
LRESULT CALLBACK WindowProcedureMainWindow (HWND       Window     ,
                     UINT       Message    ,
                     WPARAM     First      ,
                     LPARAM     Second     )
{
   switch (Message)
   {
    case WM_DESTROY: PostQuitMessage(0);
    break;
   }
   return DefWindowProc (Window, Message, First, Second);
}
//=================================================================================================
не компилится из-за строки
Code
WindowClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH                 );
, если её заменить на
Code
WindowClass.hbrBackground=NULL;
, то всё эйси. В чём дело и как с этим бороться?

Добавлено (24.04.2012, 05:52)
---------------------------------------------
И хорошо бы декларацию типа WNDCLASSEX.


Не всё так плохо, как оно есть на самом деле.

Сообщение отредактировал Тритон - Вторник, 24 Апреля 2012, 09:05
НохчиДата: Вторник, 24 Апреля 2012, 07:54 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Тема поднималась миллион раз, научись уже гуглить.

Многие вопросы по Windows отпадут, если посмотреть тут
ТритонДата: Вторник, 24 Апреля 2012, 09:05 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Quote (Нохчи)
научись уже гуглить.
Запрос
Quote
HBRUSH dev c++
, первая же ссылка http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/e4fd1c4b-4407-4743-a74f-7d78338c17d2/, на странице красуется название мелкомягкой студии, которая ту самую строку принимает без каких либо сообщений. Так кто не умеет гуглить? [url=http://www.google.ru/search?rlz=1C1AVSX_enRU457RU457&sourceid=chrome&ie=UTF-8&q=HBRUHS+devc%2B%2B#hl=ru&newwindow=1&rlz=1C1AVSX_enRU457RU457&sa=X&ei=pDCWT-iBDIm80QXHhti3Dg&ved=0CBsQvwUoAA&q=HBRUSH+dev+c%2B%2B&spell=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=180a75b44e2f9207]Убедись[/url].

Добавлено (24.04.2012, 08:59)
---------------------------------------------
Внутренний же поиск по HBRUSH ведёт только на эту тему, что противоречит утверждению о том, что она хоть раз здесь поднималась. С какой стати новичок на форуме должен знать форум лучше внутреннего поисковика? Я даже не гугол.

Добавлено (24.04.2012, 09:05)
---------------------------------------------
Тест показал, что проблема не в типе, а в функции: компилятор её знает, а линкер нет.


Не всё так плохо, как оно есть на самом деле.

Сообщение отредактировал Тритон - Вторник, 24 Апреля 2012, 09:08
НохчиДата: Вторник, 24 Апреля 2012, 09:18 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
libgdi32.a

Многие вопросы по Windows отпадут, если посмотреть тут
ТритонДата: Четверг, 26 Апреля 2012, 15:34 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Уже на www.cyberforum нашёл. Там один деятель поднял такую же тему, ему ответили.

Не всё так плохо, как оно есть на самом деле.
Форум игроделов » Программирование » C/C++ » DevС++, функция GetStockObject
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг