Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di mist3r0
    Registrato dal
    Mar 2007
    Messaggi
    103

    [c++ Finestre Bottonie Ecc...]

    ciao ragazzi, mi servirebbe un aiuto, ho scritto questo codice per ottenere la finestra allegata nell'immagine:


    #include <windows.h>
    #include "resource.h"

    const char g_szClassName[] = "myWindowClass";

    // Step 4: La procedura per la Finestra
    LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
    {
    switch(msg)
    {
    case WM_RBUTTONDOWN:
    {

    char szFileName[MAX_PATH];
    HINSTANCE hInstance = GetModuleHandle(NULL);

    GetModuleFileName(hInstance, szFileName, MAX_PATH);
    MessageBox(hwnd, szFileName, "Hai premuto il tasto destro, Questo programma è:",
    MB_OK | MB_ICONINFORMATION);

    }
    break;

    case WM_CREATE:
    {
    HMENU hMenu, hSubMenu;
    HICON hIcon, hIconSm;

    hMenu = CreateMenu();

    hSubMenu = CreatePopupMenu();
    AppendMenu(hSubMenu, MF_STRING, ID_FILE_EXIT, "C&arica File");
    AppendMenu(hSubMenu, MF_STRING, ID_FILE_EXIT, "E&sci");

    AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu,
    "&File");


    hSubMenu = CreatePopupMenu();
    AppendMenu(hSubMenu, MF_STRING, ID_STUFF_GO, "C&omprimi File");
    AppendMenu(hSubMenu, MF_STRING, ID_STUFF_GO, "D&ecomprimi File");
    AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu,
    "&Processa");

    SetMenu(hwnd, hMenu);


    }
    break;

    case WM_LBUTTONDOWN:

    break;
    case WM_MBUTTONDOWN:
    break;
    case WM_COMMAND:
    switch(LOWORD(wParam))
    {
    case ID_FILE_EXIT:
    PostMessage(hwnd, WM_CLOSE, 0, 0);
    break;
    case ID_STUFF_GO:

    break;
    }
    break;

    case WM_CLOSE:
    DestroyWindow(hwnd);
    break;
    case WM_DESTROY:
    PostQuitMessage(0);
    break;
    default:
    return DefWindowProc(hwnd, msg, wParam, lParam);
    }
    return 0;
    }


    BOOL CALLBACK AboutDlgProc(HWND hwnd, UINT Message, WPARAM wParam,
    LPARAM lParam)
    {
    switch(Message)
    {
    case WM_INITDIALOG:

    return TRUE;

    case WM_COMMAND:
    switch(LOWORD(wParam))
    {
    case ID_FILE_EXIT:
    {
    int ret = IDCANCEL; //DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(ID D_ABOUT), hwnd, AboutDlgProc);
    if(ret == IDOK){
    MessageBox(hwnd, "Dialog terminato con IDOK.", "Avviso",
    MB_OK | MB_ICONINFORMATION);
    }
    else if(ret == IDCANCEL){
    MessageBox(hwnd, "Dialog terminato con IDCANCEL.", "Avviso",
    MB_OK | MB_ICONINFORMATION);
    }
    else if(ret == -1){
    MessageBox(hwnd, "Dialog fallito!", "Errore",
    MB_OK | MB_ICONINFORMATION);
    }
    }
    break;
    // altri comandi menu...
    }
    break;

    default:
    return FALSE;
    }
    return TRUE;
    }



    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
    {
    WNDCLASSEX wc;
    HWND hwnd;
    MSG Msg;

    //Step 1: Registrazione della Window Class
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = 0;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI _MYICON));
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszMenuName = MAKEINTRESOURCE(IDR_MYMENU);
    wc.lpszClassName = g_szClassName;
    wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL),MAKEINTRESO URCE(IDI_MYICON),IMAGE_ICON, 16, 16, 0);

    if(!RegisterClassEx(&wc))
    {
    MessageBox(NULL, "Registrazione della Finestra Fallita!", "Errore!",
    MB_ICONEXCLAMATION | MB_OK);
    return 0;
    }

    // Step 2: Creazione della finestra
    hwnd = CreateWindowEx(
    WS_EX_CLIENTEDGE,
    g_szClassName,
    "La mia prima finestra...",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
    NULL, NULL, hInstance, NULL);

    if(hwnd == NULL)
    {
    MessageBox(NULL, "Creazione della Finestra Fallita!", "Errore!",
    MB_ICONEXCLAMATION | MB_OK);
    return 0;
    }

    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);

    // Step 3: Il ciclo dei messaggi
    while(GetMessage(&Msg, NULL, 0, 0) > 0)
    {
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
    }
    return Msg.wParam;
    }


    QUELLO CHE A ME SERVIREBBE E QUESTO:

    VORREI CHE QUANDO CLICCO SUL BOTTONE DEL MENU "Carica File", mi venga visualizzata una finestra per cercare un file nel mio hard disk...

    COME DEVO FARE???

    AIUTATEMI....
    Immagini allegate Immagini allegate
    M|$T3R®

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.