Kid
-
Postów
0 -
Dołączył
-
Ostatnio
Nigdy
Typ zawartości
Profile
Fora
Kalendarz
Articles
Pliki
Posty napisane przez Kid
-
-
-
Mam okienko:
wincl.hInstance = hInst; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WinMainProc; wincl.style = CS_VREDRAW | CS_HREDRAW; wincl.cbSize = sizeof (WNDCLASSEX); wincl.hIcon = LoadIcon (hInst, "SERWER"); wincl.hIconSm = LoadIcon (hInst, "SERWER"); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; if (!RegisterClassEx (&wincl)) return FALSE; hWinMain = CreateWindow (szClassName, "Serwer Metrona", WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, width, height, HWND_DESKTOP, LoadMenu(hInst, MAKEINTRESOURCE(IDM_MAIN_MENU)), hInst, NULL);
a do niego dodane menu ...
w proceduże zdarzeń mam
WM_COMMAND: ... IDM_SUBMENU: MessageBox (0, "text",text", MB_OK); break;
Problem w tym że po wybraniu opcji z menu MessageBox się nie pojawia.
Wyskakuje dopiero po wciśnięciu [ALT]-a lub po zamknięciu programu.Co jest nie tak?
Może to mój NT znowu odstawia numery
Pisze w DEV C++.
Pozdrawiam. -
-
-
-
Mam okienko:
hSKomunikat = CreateWindow ("edit", "",ES_MULTILINE WS_VSCROLL WS_VISIBLE WS_CHILD WS_BORDER , 0, 0, width - 7, height - 345, hWinMain, NULL, hInst, NULL );
i dodaje text:
char cbufor[1000]; char text = "\n nowa linia" long int lWinText = GetWindowTextLength (hSKomunikat); char cBufor[lWinText + strlen (text)]; GetWindowText (hSKomunikat , cBufor, lWinText + 1); strcat (cBufor, text); SetWindowText (hwnd, cBufor);
ale chcę żeby ten text był w nowej lini a dodanie "\n" wstawia mi pionową kreskę
jak to zrobić?
-
Miałem Dev C++ ver 4.9.7 i projekt Open GL. Wszystko było ok.
Ale zainstalowałem Dev C++ 4.9.8 i od tego momentu przy kompilacji w/w projektu wyskakuje błąd[Linker error] undefined reference to `__gxx_personality_v0'
Co jest?
-
... albo jakiegoś DLL-ka z plikami nagłówkowymi ...
-
Macie jakiś przykład obsługi bazy danych MS Access przez C++ i API?
-
zaqmiast CDS_FULLSCREEN wstaw 0 i też będzie chodzić
u mnie tak było bo to przykład z OpenGL-a -
Kto mi przetłumaczy poniższy kod na C++
Public Tekstura() As Long Public Function LoadGLTexture(NazwaTex As String, KtoraTex As Byte) As Boolean 'Tutaj wczytujemy dany plik i konwertujemy na teksturę "zjadliwą" dla OpenGL Dim sFile As String Dim bmFile As BITMAPFILEHEADER Dim bmInfo As BITMAPINFOHEADER Dim bmRGB() As RGBQUAD Dim iFile As Integer Dim lImageSize As Long Dim iPixelSize As Integer Dim baImageData() As Byte 'Ustawiamy nazwę pliku sFile = App.Path & "\" & NazwaTex iFile = FreeFile Open sFile For Binary As iFile 'Odczytajmy nagłówek pliku Get #iFile, , bmFile Get #iFile, , bmInfo 'Zprawdźmy ilu kolorowa jest bitmapa If (bmInfo.biBitCount < 24) Then 'Mniej niż 24bity (16777215) koloruff, przypiszmy ten fakt do odpowiedniej zmiennej ReDim bmRGB(bmInfo.biClrUsed) 'Wczytajmy tablicę kolorów Get #iFile, , bmRGB End If 'Sprawdźmy jak duża jest nasza bitmapa iPixelSize = bmInfo.biBitCount / 8 lImageSize = bmInfo.biWidth * bmInfo.biHeight * iPixelSize ReDim baImageData(lImageSize) 'Wczytajmy dane (obraz) bitmapy Get #iFile, , baImageData Close #iFile 'Stwórzmy wskaźnik dla naszej tekstury ReDim Tekstura(KtoraTex) 'Zróbmy nieco miejsca w pamięci karty graficznej dla naszej tekstury glGenTextures 1, Tekstura(KtoraTex) 'Od teraz nasza bitmapa będzie nazywała się teksturą, przepiszmy dane z pamięci RAM do VRAM glBindTexture glTexture2D, Tekstura(KtoraTex) glTexParameteri glTexture2D, tpnTextureMagFilter, GL_LINEAR 'Wybieramy skalowanie metodą GL_LINEAR glTexParameteri glTexture2D, tpnTextureMinFilter, GL_LINEAR glTexImage2D glTexture2D, 0, 3, bmInfo.biWidth, bmInfo.biHeight, _ 0, tiBGRExt, GL_UNSIGNED_BYTE, baImageData(0) 'Super! Udało nam się stworzyć teksturę LoadGLTexture = True End Function
-
-
Aby zmienić rozdzielczość:
DEVMODE dm; memset (&dm, 0, sizeof (dm)); dm.dmSize = sizeof (dm); dm.dmPelsWidth = width; dm.dmPelsHeight = height; dm.dmBitsPerPel = bits; dm.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT; ChangeDisplaySettings (&dm, CDS_FULLSCREEN);
Gdzie 'width i height' to rozdzielczość
'bits' to ilość kolorów np. wartość 24 to: 24bity a nie 24 koloryAby przywrócić oryginalne ustawienia:
ChangeDisplaySettings (NULL, 0);
-
temat mówi sam za siebie
Jest jakiś sposób na schowanie/pokazania kursora pod systemem Win NT? -
Napisałem kod który jest poniżej.
W momencie kiedy zminimalizuję okno pojawia się ikonka w Tray-u. (jest OK), ale w momencie kiedy przejadę myszką nad tą ikonką to automatycznie ona znika, zdarzenie WM_TRAY nie zachodzi, a przogram działa jakby nic się nie stało.
co jest nie tak?
może to przez to ze mam system win NT?#include <windows.h> # define WM_TRAY WM_USER+1 LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); char szClassName[ ] = "WindowsApp"; NOTIFYICONDATA nid; HWND hwnd, thwnd; int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { MSG messages; WNDCLASSEX wincl; wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; wincl.style = CS_DBLCLKS; wincl.cbSize = sizeof (WNDCLASSEX); wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; nid.cbSize = sizeof(NOTIFYICONDATA); nid.hWnd = hwnd; nid.uID = 1001; nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; nid.uCallbackMessage = WM_TRAY;; nid.hIcon = LoadIcon(NULL, IDI_APPLICATION); lstrcpyn(nid.szTip, szClassName, sizeof(nid.szTip)); if (!RegisterClassEx (&wincl)) return 0; hwnd = CreateWindow (szClassName, "Windows App", WS_OVERLAPPEDWINDOW, 0, 0, 640, 480, HWND_DESKTOP, NULL, hThisInstance, NULL ); ShowWindow (hwnd, nFunsterStil); while (GetMessage (&messages, NULL, 0, 0)) { TranslateMessage(&messages); DispatchMessage(&messages); } return messages.wParam; } LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_DESTROY: PostQuitMessage (0); break; case WM_SIZE: if (LOWORD(wParam)==1) Shell_NotifyIcon(NIM_ADD, &nid); break; case WM_TRAY: MessageBox (NULL, "l","k", MB_OK); default: return DefWindowProc (hwnd, message, wParam, lParam); } return 0; }
re
w C
Napisano
zauważyłem z po dodaniu opcji WS_THICKFRAME
MessageBox siepojawia tak jak powinien ale wtedy można zmieic rozmiar okna a to mi nie pasuje