Soyez le premier à donner votre avis sur cette source.
Vue 4 554 fois - Téléchargée 381 fois
#include <windows.h> #include "resource.h" #define LST_LCLIC (WM_USER+1) #define LST_RCLIC 1000 WNDPROC lstProc; char *szappname = "ListBox"; LRESULT CALLBACK lstNewProc(HWND hwnd, UINT mssg, WPARAM wParam, LPARAM lParam) { switch(mssg) { case WM_LBUTTONDOWN: if(SendMessage(hwnd, LB_ITEMFROMPOINT, 0, lParam) > 0xFFFF) PostMessage(GetParent(hwnd), LST_LCLIC, 0, (long) hwnd); break; case WM_RBUTTONDOWN: PostMessage(GetParent(hwnd), WM_COMMAND, LST_RCLIC, (long) hwnd); } return CallWindowProc(lstProc, hwnd, mssg, wParam, lParam); } BOOL CALLBACK AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam) { switch(mssg) { case LST_LCLIC: MessageBox(hdlg, "Clic gauche", szappname, 0); break; case WM_COMMAND: switch(wParam) { case LST_RCLIC: MessageBox(hdlg, "Clic droit", szappname, 0); break; case IDCANCEL: EndDialog(hdlg, wParam); } return 0; case WM_INITDIALOG: { HWND hlst; SetClassLong(hdlg, GCL_HICON, (long)LoadIcon(0, IDI_APPLICATION)); hlst = GetDlgItem(hdlg, ID_LST); SendMessage(hlst, LB_ADDSTRING, 0, (long) szappname); SendMessage(hlst, LB_ADDSTRING, 0, (long) szappname); lstProc = (WNDPROC) SetWindowLong(hlst, GWL_WNDPROC, (long) lstNewProc); return TRUE; } } return 0; } int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE, PSTR, int) { DialogBox(hInstance, MAKEINTRESOURCE(IDD_APP), 0, AppDlgProc); return 0; }
25 févr. 2003 à 20:06
ciao...
25 févr. 2003 à 19:44
il serait meilleur de retirer la condition sous
case WM_LBUTTONDOWN:
if (...)
qui empêche le clic gauche de fonctionner.
Ton intention ?
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.