groza10 utworzono 16 listopada 2010 utworzono 16 listopada 2010 Chciałbym coś umieścić w oknie Windows, ale nie wiem gdzie dokładniej coś wpisać lub wstawić. W DevC++ Znalazłem takie okno: [code]#include /* Declare Windows procedure */ LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); /* Make the class name into a global variable */ char szClassName[ ] = "WindowsApp"; int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { HWND hwnd; /* This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */ /* The Window structure */ wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */ wincl.style = CS_DBLCLKS; /* Catch double-clicks */ wincl.cbSize = sizeof (WNDCLASSEX); /* Use default icon and mouse-pointer */ wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; /* No menu */ wincl.cbClsExtra = 0; /* No extra bytes after the window class */ wincl.cbWndExtra = 0; /* structure or the window instance */ /* Use Windows's default color as the background of the window */ wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; /* Register the window class, and if it fails quit the program */ if (!RegisterClassEx (&wincl)) return 0; /* The class is registered, let's create the program*/ hwnd = CreateWindowEx ( 0, /* Extended possibilites for variation */ szClassName, /* Classname */ "Windows App", /* Title Text */ WS_OVERLAPPEDWINDOW, /* default window */ CW_USEDEFAULT, /* Windows decides the position */ CW_USEDEFAULT, /* where the window ends up on the screen */ 544, /* The programs width */ 375, /* and height in pixels */ HWND_DESKTOP, /* The window is a child-window to desktop */ NULL, /* No menu */ hThisInstance, /* Program Instance handler */ NULL /* No Window Creation data */ ); /* Make the window visible on the screen */ ShowWindow (hwnd, nFunsterStil); /* Run the message loop. It will run until GetMessage() returns 0 */ while (GetMessage (&messages, NULL, 0, 0)) { /* Translate virtual-key messages into character messages */ TranslateMessage(&messages); /* Send message to WindowProcedure */ DispatchMessage(&messages); } /* The program return-value is 0 - The value that PostQuitMessage() gave */ return messages.wParam; } /* This function is called by the Windows function DispatchMessage() */ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) /* handle the messages */ { case WM_DESTROY: PostQuitMessage (0); /* send a WM_QUIT to the message queue */ break; default: /* for messages that we don't deal with */ return DefWindowProc (hwnd, message, wParam, lParam); } return 0; }[/code] I chciałbym do niego wstawić tekst i zdjęcie. Proszę o szybką odpowiedź. Z góry dzięki. groza10
tom300 komentarz 16 listopada 2010 komentarz 16 listopada 2010 Dam Ci link do ciekawego kursu, tam znajdziesz odpowiedzi na swoje pytania: [url="http://darkcult.nazwa.pl/wiki/index.php?title=WinAPI"]Dark Cult[/url]
groza10 komentarz 16 listopada 2010 Autor komentarz 16 listopada 2010 na żadnym kursie nie znalazłem tak banalnego pytania
winuser komentarz 16 listopada 2010 komentarz 16 listopada 2010 groza10 nie wiem dlaczego uważasz, że to banalne pytanie ? Tekst wstawić możesz w kilku miejscach, chociażby zaraz za CreateWindowEx i podać jako klasę okna "STATIC" a parent ustawić na `hwnd`. Z obrazkiem to już gorsza sprawa, bo wczytywać możesz jedynie BMP (tzn możesz każdy ale o wiele więcej byś musiał się namęczyć). Poczytaj sobie na internecie informacje na temat GDI i wyświetlania bitmap bo to zbyt rozległy temat aby go tu wałkować, potem ewentualnie pytaj tutaj. Jak chcesz ładować PNG czy JPEG to zainteresuj się zamiast tego biblioteką GDI+ (obiektowa wersja GDI).
groza10 komentarz 17 listopada 2010 Autor komentarz 17 listopada 2010 nie lapie xd nie jestem za szybko madry ;p
winuser komentarz 17 listopada 2010 komentarz 17 listopada 2010 Na zachętę masz kod z kontrolką statyczną. [code]#include <windows.h> /* Declare Windows procedure */ LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); /* Make the class name into a global variable */ char szClassName[ ] = "WindowsApp"; int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { HWND hwnd, tekst; /* This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */ /* The Window structure */ wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */ wincl.style = CS_DBLCLKS; /* Catch double-clicks */ wincl.cbSize = sizeof (WNDCLASSEX); /* Use default icon and mouse-pointer */ wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; /* No menu */ wincl.cbClsExtra = 0; /* No extra bytes after the window class */ wincl.cbWndExtra = 0; /* structure or the window instance */ /* Use Windows's default color as the background of the window */ wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; /* Register the window class, and if it fails quit the program */ if (!RegisterClassEx (&wincl)) return 0; /* The class is registered, let's create the program*/ hwnd = CreateWindowEx ( 0, /* Extended possibilites for variation */ szClassName, /* Classname */ "Windows App", /* Title Text */ WS_OVERLAPPEDWINDOW, /* default window */ CW_USEDEFAULT, /* Windows decides the position */ CW_USEDEFAULT, /* where the window ends up on the screen */ 544, /* The programs width */ 375, /* and height in pixels */ HWND_DESKTOP, /* The window is a child-window to desktop */ NULL, /* No menu */ hThisInstance, /* Program Instance handler */ NULL /* No Window Creation data */ ); tekst = CreateWindowEx ( 0, /* Extended possibilites for variation */ "STATIC", /* Classname */ "Jakiś tekst", /* Title Text */ WS_CHILD | WS_VISIBLE, /* default window */ CW_USEDEFAULT, /* Windows decides the position */ CW_USEDEFAULT, /* where the window ends up on the screen */ 100, /* The programs width */ 100, /* and height in pixels */ hwnd, /* The window is a child-window to desktop */ NULL, /* No menu */ hThisInstance, /* Program Instance handler */ NULL /* No Window Creation data */ ); /* Make the window visible on the screen */ ShowWindow (hwnd, nFunsterStil); /* Run the message loop. It will run until GetMessage() returns 0 */ while (GetMessage (&messages, NULL, 0, 0)) { /* Translate virtual-key messages into character messages */ TranslateMessage(&messages); /* Send message to WindowProcedure */ DispatchMessage(&messages); } /* The program return-value is 0 - The value that PostQuitMessage() gave */ return messages.wParam; } /* This function is called by the Windows function DispatchMessage() */ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) /* handle the messages */ { case WM_DESTROY: PostQuitMessage (0); /* send a WM_QUIT to the message queue */ break; default: /* for messages that we don't deal with */ return DefWindowProc (hwnd, message, wParam, lParam); } return 0; }[/code]
groza10 komentarz 18 listopada 2010 Autor komentarz 18 listopada 2010 Napotkałem błąd, albo w moi komputerze, albo w windows7 chodzi o to, że jak włączam takie skrypty to towarzyszy mu wiersz polecenia...czy to normalne? I jeszcze dokładna sprawa, gdzie mam wpisać tekst? Z tego co rozumiem to tutaj: [code] /* The class is registered, let's create the program*/ hwnd = CreateWindowEx ( [b]Tekst mój[/b] 0, /* Extended possibilites for variation */ szClassName, /* Classname */[/code]
winuser komentarz 18 listopada 2010 komentarz 18 listopada 2010 Jak budujesz aplikację w trybie "Debug" to się będzie pojawiało. Przełącz na "Release" i zniknie. Słyszałeś kiedyś o dokumentacji ? http://msdn.microsoft.com/en-us/library/ms632680(VS.85).aspx
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.