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