1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| #include <windows.h>
#include <commctrl.h>
#include "resource.h"
using namespace std;
BOOL APIENTRY DlgProc(HWND, UINT, WPARAM, LPARAM);
LRESULT APIENTRY ListProc(HWND, UINT, WPARAM, LPARAM);
WNDPROC DefaultListProc;
HINSTANCE appli;
int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nCmdShow) {
InitCommonControls();
appli=hThisInstance;
DialogBoxParam(appli,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc,(LPARAM)lpszArgument);
return 0;
}
BOOL APIENTRY DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {
HWND hList;
switch (message) {
case WM_INITDIALOG: {
//{trucs faits au démarrage ici}
//il y a une liste (listbox) à gérer
hList=GetDlgItem(hDlg,IDC_LIST1);
DefaultListProc=(WNDPROC)SetWindowLong(hList,GWL_WNDPROC, (LONG)ListProc);
return TRUE;
}
case WM_DROPFILES: {
//{gestion cliquer-déplacer}
}
case WM_COMMAND: {
if(LOWORD(wParam) == element_boite_dialogue) { //note: répété pour plusieurs "element_boite_dialogue" différents
//{action si clic sur element_boite_dialogue ou sélection de element_boite_dialogue dans un menu}
}
if( HIWORD(wParam) == LBN_SELCHANGE ) {
//action si sélection dans la liste
}
if( LOWORD(wParam) == IDOK || LOWORD(wParam) == IDM_QUITTER ||
LOWORD(wParam) == IDCANCEL) {
SetWindowLong(hList, GWL_WNDPROC, (LONG) DefaultListProc);
EndDialog(hDlg,0);
return TRUE;
}
return 0;
}
default:
return FALSE;
}
}
//gestion de la liste
LRESULT APIENTRY ListProc(HWND hList, UINT message, WPARAM wParam, LPARAM lParam) {
return CallWindowProc(DefaultListProc,hList,message,wParam,lParam);
} |
Partager