Skocz do zawartości

Kid

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Posty napisane przez Kid

  1. 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

  2. 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.

  3. Spoon dzięki za sprawdzenie u siebie?
    Gdy dzis sprawdzałem to też zadziałało, ale wczoraj były dwie kreseczki?
    Ale mnie to juz nie dziwi mam Win NT 4.0 i co i rusz są jakieś dziwne sytuacje>

  4. próbowałem już:
    \n\r ; \r\n ; \x10\x13 ; \x13\x10 - pojawiają się dwie pionowe kreski
    \n ; \r ; \x10 ; \x13 - pojawia się jdna pionowa kreska
    char ENTER = 13 pojawia sie jedna pionowa kreska
    itd itp
    TO NIE DZIAŁA !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  5. 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ć?

  6. 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
    
  7. 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 kolory

    Aby przywrócić oryginalne ustawienia:

    ChangeDisplaySettings (NULL, 0);
    
  8. 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;
    }
×
×
  • Utwórz nowe...