CheckBox, buttons, radio buttons, and textarea.

CheckBox, buttons, radio buttons, and textarea.

DialogBoxParam,SendMessage

See version :

Pas de dépendances

Download :

Plusieurs fichiers :
04_12_02_dialog.c
04_12_02_resource.h
04_12_02_resource.rc


04_12_02_dialog.c

#include <stdio.h> #include <windows.h> #include <commctrl.h> #include "04_12_02_resource.h" #pragma comment(lib,"comctl32.lib") typedef struct { int check; int radio; TCHAR texte[500]; } Sdata; INT_PTR wmcommand(HWND hDlg, WPARAM wParam, LPARAM lParam,Sdata* sdat) { unsigned short id = LOWORD(wParam); switch(id) { case IDD_BOUTON1: { int nbc; LPWORD tmp = (LPWORD) sdat->texte; HWND hEdit = GetDlgItem(hDlg, IDD_EDIT1); *tmp = sizeof(sdat->texte); nbc = SendMessage(hEdit, EM_GETLINE, 0,(LPARAM)sdat->texte); EndDialog(hDlg, 1); } return TRUE; case IDD_RADIO1: sdat->radio = 1; return TRUE; case IDD_RADIO2: sdat->radio = 2; return TRUE; case IDD_CHECK1: { HWND hCombo = GetDlgItem(hDlg, IDD_CHECK1); int val = SendMessage(hCombo, BM_GETCHECK, 0, 0); sdat->check = val; } return TRUE; } return FALSE; } INT_PTR CALLBACK DlgFenetre(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { static Sdata* sdat; switch(msg) { case WM_INITDIALOG: sdat = (Sdata*)lParam; return TRUE; case WM_COMMAND: return wmcommand(hDlg,wParam,lParam,sdat); case WM_CLOSE: EndDialog(hDlg, 0); return TRUE; } return FALSE; } int main() { int ret; Sdata data; ZeroMemory(&data,sizeof(Sdata)); InitCommonControls(); ret = DialogBoxParam(0, MAKEINTRESOURCE(IDD_FENETRE), 0, DlgFenetre,(LPARAM)&data); printf("ret = %d\n",ret); printf("radio = %d\n",data.radio); printf("checkbox = %d\n",data.check); printf("editbox = %S\n",data.texte); // %S si on est en unicode (sizeof(TCHAR)==2) et %s si on n'est pas en unicode (et sizeof(TCHAR) = 1) return 0; }


04_12_02_resource.h

#define IDD_FENETRE 100 #define IDD_BOUTON1 101 #define IDD_RADIO1 102 #define IDD_RADIO2 103 #define IDD_CHECK1 105 #define IDD_EDIT1 104


04_12_02_resource.rc

#include <windows.h> #include "04_12_02_resource.h" IDD_FENETRE DIALOG 100, 100, 350, 200 STYLE DS_MODALFRAME|WS_VISIBLE|WS_CAPTION|WS_SYSMENU CAPTION "Titre" FONT 8, "Helv" BEGIN LTEXT "Plouf", -1, 10, 10, 50, 40 PUSHBUTTON "Valider",IDD_BOUTON1,50,20,125,15 AUTORADIOBUTTON "radio1",IDD_RADIO1,50,40,50,20 AUTORADIOBUTTON "radio2",IDD_RADIO2,50,60,50,20 AUTOCHECKBOX "checkbox1",IDD_CHECK1,50,80,50,20 EDITTEXT IDD_EDIT1,50,100,250,20 END END


Explanations

	No explanations yet.