EgtExecutor (ModeLessDialog) :

- prima versione di dialogo non modale.
This commit is contained in:
Riccardo Elitropi
2026-06-19 10:45:31 +02:00
parent d569c7d8ee
commit e9439f04aa
3 changed files with 24 additions and 25 deletions
BIN
View File
Binary file not shown.
+14 -14
View File
@@ -1605,7 +1605,7 @@ CALLBACK DialogBoxModelessProc( HWND hwndDlg, UINT message, WPARAM wParam, LPARA
CheckDlgButton( hwndDlg, IDC_CHECK_ML_1 + i, ( bChecked ? BST_CHECKED : BST_UNCHECKED)) ;
ShowWindow( GetDlgItem( hwndDlg, IDC_EDIT_ML_1 + i), SW_HIDE) ; // nascondo Edit
ShowWindow( GetDlgItem( hwndDlg, IDC_COMBO_ML_1 + i), SW_HIDE) ; // nascondo Combo
ShowWindow( GetDlgItem( hwndDlg, IDC_BUTTON_ML_1 + i), SW_HIDE) ; // nascondo Button di selezione
ShowWindow( GetDlgItem( hwndDlg, IDC_BUTTON_SEL_ML_1 + i), SW_HIDE) ; // nascondo Button di selezione
s_nType_ML[i] = CTRL_CHECK ;
}
@@ -1635,7 +1635,7 @@ CALLBACK DialogBoxModelessProc( HWND hwndDlg, UINT message, WPARAM wParam, LPARA
SetWindowPos( hwndCBox, NULL, rc.left, rc.top, rc.right - rc.left, nTotalHeight, SWP_NOZORDER) ;
ShowWindow( GetDlgItem( hwndDlg, IDC_EDIT_ML_1 + i), SW_HIDE) ; // nascondo Edit
ShowWindow( GetDlgItem( hwndDlg, IDC_CHECK_ML_1 + i), SW_HIDE) ; // nascondo CheckBox
ShowWindow( GetDlgItem( hwndDlg, IDC_BUTTON_ML_1 + i), SW_HIDE) ; // nascondo Button di selezione
ShowWindow( GetDlgItem( hwndDlg, IDC_BUTTON_SEL_ML_1 + i), SW_HIDE) ; // nascondo Button di selezione
s_nType_ML[i] = CTRL_COMBO ;
}
@@ -1672,7 +1672,7 @@ CALLBACK DialogBoxModelessProc( HWND hwndDlg, UINT message, WPARAM wParam, LPARA
ShowWindow( GetDlgItem( hwndDlg, IDC_EDIT_ML_1 + i), SW_HIDE) ; // nascondo Edit
ShowWindow( GetDlgItem( hwndDlg, IDC_COMBO_ML_1 + i), SW_HIDE) ; // nascondo Combo
ShowWindow( GetDlgItem( hwndDlg, IDC_CHECK_ML_1 + i), SW_HIDE) ; // nascondo Check
ShowWindow( GetDlgItem( hwndDlg, IDC_BUTTON_ML_1 + i), SW_HIDE) ; // nascondo Button di selezione
ShowWindow( GetDlgItem( hwndDlg, IDC_BUTTON_SEL_ML_1 + i), SW_HIDE) ; // nascondo Button di selezione
// margini per dimensione del rettangolo preview pickColor
const int MARGIN_RIGHT = 8 ; // spazio tra preview e bordo destro dialog
@@ -1709,10 +1709,10 @@ CALLBACK DialogBoxModelessProc( HWND hwndDlg, UINT message, WPARAM wParam, LPARA
}
// --- se Button di selezione
else if ( s_sEdit_ML[i].find( "BT:") == 0) {
ShowWindow( GetDlgItem( hwndDlg, IDC_COMBO_ML_1 + i), SW_HIDE) ; // nascondo la Combo
ShowWindow( GetDlgItem( hwndDlg, IDC_CHECK_ML_1 + i), SW_HIDE) ; // nascondo la Check
SetDlgItemText( hwndDlg, IDC_BUTTON_ML_1 + i, stringtoW( string{ "N"})) ; // modalità non Selezione
else if ( s_sEdit_ML[i].find( "BS:") == 0) {
ShowWindow( GetDlgItem( hwndDlg, IDC_COMBO_ML_1 + i), SW_HIDE) ; // nascondo la Combo
ShowWindow( GetDlgItem( hwndDlg, IDC_CHECK_ML_1 + i), SW_HIDE) ; // nascondo la Check
SetDlgItemText( hwndDlg, IDC_BUTTON_SEL_ML_1 + i, stringtoW( string{ "-"})) ; // modalità non Selezione
// associo alla casella di testo la funzione di KeyPress su Enter
HWND hEdit = GetDlgItem( hwndDlg, IDC_EDIT_ML_1 + i) ;
if ( hEdit != nullptr)
@@ -1725,7 +1725,7 @@ CALLBACK DialogBoxModelessProc( HWND hwndDlg, UINT message, WPARAM wParam, LPARA
SetDlgItemText( hwndDlg, IDC_EDIT_ML_1 + i, stringtoW( s_sEdit_ML[i])) ;
ShowWindow( GetDlgItem( hwndDlg, IDC_COMBO_ML_1 + i), SW_HIDE) ; // nascondo Combo
ShowWindow( GetDlgItem( hwndDlg, IDC_CHECK_ML_1 + i), SW_HIDE) ; // nascondo Check
ShowWindow( GetDlgItem( hwndDlg, IDC_BUTTON_ML_1 + i), SW_HIDE) ; // nascondo Button di selezione
ShowWindow( GetDlgItem( hwndDlg, IDC_BUTTON_SEL_ML_1 + i), SW_HIDE) ; // nascondo Button di selezione
s_nType_ML[i] = CTRL_EDIT ;
}
}
@@ -1736,7 +1736,7 @@ CALLBACK DialogBoxModelessProc( HWND hwndDlg, UINT message, WPARAM wParam, LPARA
ShowWindow( GetDlgItem( hwndDlg, IDC_EDIT_ML_1 + i), SW_HIDE) ;
ShowWindow( GetDlgItem( hwndDlg, IDC_COMBO_ML_1 + i), SW_HIDE) ;
ShowWindow( GetDlgItem( hwndDlg, IDC_CHECK_ML_1 + i), SW_HIDE) ;
ShowWindow( GetDlgItem( hwndDlg, IDC_BUTTON_ML_1 + i), SW_HIDE) ;
ShowWindow( GetDlgItem( hwndDlg, IDC_BUTTON_SEL_ML_1 + i), SW_HIDE) ;
s_nType[i] = CTRL_NONE ;
}
}
@@ -1763,12 +1763,12 @@ CALLBACK DialogBoxModelessProc( HWND hwndDlg, UINT message, WPARAM wParam, LPARA
int code = HIWORD( wParam) ;
// --- se click di un Button di selezione
if ( id >= IDC_BUTTON_ML_1 && id < IDC_BUTTON_ML_1 + MAX_CTRLS_ML) {
if ( id >= IDC_BUTTON_SEL_ML_1 && id < IDC_BUTTON_SEL_ML_1 + MAX_CTRLS_ML) {
int nBtnId = id ;
int nEditId = IDC_EDIT_ML_1 + ( id - IDC_BUTTON_ML_1) ;
int nEditId = IDC_EDIT_ML_1 + ( id - IDC_BUTTON_SEL_ML_1) ;
// se il bottone premuto è lo stesso, allora termina le selezione degli Ids
if ( nDlgModelessItem == nEditId) {
SetDlgItemText( hwndDlg, nBtnId, stringtoW( string{ "N"})) ;
SetDlgItemText( hwndDlg, nBtnId, stringtoW( string{ "-"})) ;
nDlgModelessItem = -1 ;
}
// se nuovo buttone premuto
@@ -1776,8 +1776,8 @@ CALLBACK DialogBoxModelessProc( HWND hwndDlg, UINT message, WPARAM wParam, LPARA
// se esisteva una selezione precedente, questa viene annullata
if ( nDlgModelessItem != -1) {
// recupero il Button di selezione precedente e modifico il suo testo
int nPrevBtnId = IDC_BUTTON_ML_1 + ( nDlgModelessItem - IDC_EDIT_ML_1) ;
SetDlgItemText( hwndDlg, nPrevBtnId, stringtoW( string{ "N"})) ;
int nPrevBtnId = IDC_BUTTON_SEL_ML_1 + ( nDlgModelessItem - IDC_EDIT_ML_1) ;
SetDlgItemText( hwndDlg, nPrevBtnId, stringtoW( string{ "-"})) ;
}
// la selezione passa al comando corrente
nDlgModelessItem = nEditId ;
+10 -11
View File
@@ -3,7 +3,6 @@
// Utilizzato da EgtExecutor.rc
//
#define VS_VERSION_INFO 1
#define IDD_LUADLG 101
#define IDD_LUASCENE 102
#define IDD_LUADLG_ML 103
@@ -91,14 +90,14 @@
#define IDC_CHECK_ML_7 2037
#define IDC_CHECK_ML_8 2038
#define IDC_BUTTON_ML_1 2041
#define IDC_BUTTON_ML_2 2042
#define IDC_BUTTON_ML_3 2043
#define IDC_BUTTON_ML_4 2044
#define IDC_BUTTON_ML_5 2045
#define IDC_BUTTON_ML_6 2046
#define IDC_BUTTON_ML_7 2047
#define IDC_BUTTON_ML_8 2048
#define IDC_BUTTON_SEL_ML_1 2041
#define IDC_BUTTON_SEL_ML_2 2042
#define IDC_BUTTON_SEL_ML_3 2043
#define IDC_BUTTON_SEL_ML_4 2044
#define IDC_BUTTON_SEL_ML_5 2045
#define IDC_BUTTON_SEL_ML_6 2046
#define IDC_BUTTON_SEL_ML_7 2047
#define IDC_BUTTON_SEL_ML_8 2048
#define IDOK_ML 2051
#define IDCANCEL_ML 2052
@@ -107,9 +106,9 @@
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 105
#define _APS_NEXT_RESOURCE_VALUE 109
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1072
#define _APS_NEXT_CONTROL_VALUE 1073
#define _APS_NEXT_SYMED_VALUE 115
#endif
#endif