📄 dialogs.c
字号:
}
//=============================================================================
//
// LongLineSettingsDlgProc()
//
// Controls: 100 Edit
// 101 Radio1
// 102 Radio2
//
extern int iLongLineMode;
BOOL CALLBACK LongLineSettingsDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
static int *piNumber;
switch(umsg)
{
case WM_INITDIALOG:
{
piNumber = (int*)lParam;
SetDlgItemInt(hwnd,100,*piNumber,FALSE);
SendDlgItemMessage(hwnd,100,EM_LIMITTEXT,15,0);
if (iLongLineMode == EDGE_LINE)
CheckRadioButton(hwnd,101,102,101);
else
CheckRadioButton(hwnd,101,102,102);
CenterDlgInParent(hwnd);
}
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK: {
BOOL fTranslated;
int iNewNumber = GetDlgItemInt(hwnd,100,&fTranslated,FALSE);
if (fTranslated)
{
*piNumber = iNewNumber;
iLongLineMode = (IsDlgButtonChecked(hwnd,101)) ? EDGE_LINE : EDGE_BACKGROUND;
EndDialog(hwnd,IDOK);
}
else
PostMessage(hwnd,WM_NEXTDLGCTL,(WPARAM)(GetDlgItem(hwnd,100)),1);
}
break;
case IDCANCEL:
EndDialog(hwnd,IDCANCEL);
break;
}
return TRUE;
}
return FALSE;
}
//=============================================================================
//
// LongLineSettingsDlg()
//
BOOL LongLineSettingsDlg(HWND hwnd,UINT uidDlg,int *iNumber)
{
int iResult;
iResult = DialogBoxParam(
g_hInstance,
MAKEINTRESOURCE(uidDlg),
hwnd,
LongLineSettingsDlgProc,(LPARAM)iNumber);
return (iResult == IDOK) ? TRUE : FALSE;
}
//=============================================================================
//
// TabSettingsDlgProc()
//
// Controls: 100 Edit
// 101 Edit
// 102 Check
//
extern int iTabWidth;
extern int iIndentWidth;
extern BOOL bTabsAsSpaces;
BOOL CALLBACK TabSettingsDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
switch(umsg)
{
case WM_INITDIALOG:
{
SetDlgItemInt(hwnd,100,iTabWidth,FALSE);
SendDlgItemMessage(hwnd,100,EM_LIMITTEXT,15,0);
SetDlgItemInt(hwnd,101,iIndentWidth,FALSE);
SendDlgItemMessage(hwnd,101,EM_LIMITTEXT,15,0);
if (bTabsAsSpaces)
CheckDlgButton(hwnd,102,BST_CHECKED);
CenterDlgInParent(hwnd);
}
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK: {
BOOL fTranslated1,fTranslated2;
int iNewTabWidth = GetDlgItemInt(hwnd,100,&fTranslated1,FALSE);
int iNewIndentWidth = GetDlgItemInt(hwnd,101,&fTranslated2,FALSE);
if (fTranslated1 && fTranslated2)
{
iTabWidth = iNewTabWidth;
iIndentWidth = iNewIndentWidth;
bTabsAsSpaces = (IsDlgButtonChecked(hwnd,102)) ? TRUE : FALSE;
EndDialog(hwnd,IDOK);
}
else
PostMessage(hwnd,WM_NEXTDLGCTL,(WPARAM)(GetDlgItem(hwnd,(fTranslated1) ? 101 : 100)),1);
}
break;
case IDCANCEL:
EndDialog(hwnd,IDCANCEL);
break;
}
return TRUE;
}
return FALSE;
}
//=============================================================================
//
// TabSettingsDlg()
//
BOOL TabSettingsDlg(HWND hwnd,UINT uidDlg,int *iNumber)
{
int iResult;
iResult = DialogBoxParam(
g_hInstance,
MAKEINTRESOURCE(uidDlg),
hwnd,
TabSettingsDlgProc,(LPARAM)iNumber);
return (iResult == IDOK) ? TRUE : FALSE;
}
//=============================================================================
//
// SelectEncodingDlgProc()
//
// Controls: 100 Combo
// IDC_CPINFO
//
BOOL CALLBACK SelectEncodingDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
static int *piOption;
switch(umsg)
{
case WM_INITDIALOG:
{
char tch[512], tchFmt[64];
char *p1, *p2;
CPINFOEX cpi;
piOption = (int*)lParam;
GetCPInfoEx(GetACP(),0,&cpi);
GetDlgItemText(hwnd,101,tchFmt,COUNTOF(tchFmt));
wsprintf(tch,tchFmt,cpi.CodePageName);
lstrcat(tch,"|");
p1 = tch;
while (p2 = strchr(p1,'|')) {
*p2++ = '\0';
if (*p1)
SendDlgItemMessage(hwnd,100,CB_ADDSTRING,0,(LPARAM)p1);
p1 = p2;
}
SendDlgItemMessage(hwnd,100,CB_SETCURSEL,(WPARAM)*piOption,0);
SendDlgItemMessage(hwnd,100,CB_SETEXTENDEDUI,TRUE,0);
if (bSkipUnicodeDetection)
CheckDlgButton(hwnd,IDC_NOUNICODEDETECTION,BST_CHECKED);
CenterDlgInParent(hwnd);
}
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK: {
*piOption = SendDlgItemMessage(hwnd,100,CB_GETCURSEL,0,0);
bSkipUnicodeDetection = (IsDlgButtonChecked(hwnd,IDC_NOUNICODEDETECTION) == BST_CHECKED) ? 1 : 0;
EndDialog(hwnd,IDOK);
}
break;
case IDCANCEL:
EndDialog(hwnd,IDCANCEL);
break;
}
return TRUE;
}
return FALSE;
}
//=============================================================================
//
// SelectEncodingDlg()
//
BOOL SelectEncodingDlg(HWND hwnd,int *iOption)
{
int iResult;
iResult = DialogBoxParam(
g_hInstance,
MAKEINTRESOURCE(IDD_ENCODING),
hwnd,
SelectEncodingDlgProc,
(LPARAM)iOption);
return (iResult == IDOK) ? TRUE : FALSE;
}
//=============================================================================
//
// SelectLineEndingDlgProc()
//
// Controls: 100 Combo
// IDC_CONSISTENTEOLS
//
BOOL CALLBACK SelectLineEndingDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
static int *piOption;
switch(umsg)
{
case WM_INITDIALOG:
{
char tch[512];
char *p1, *p2;
piOption = (int*)lParam;
// Load options
GetDlgItemText(hwnd,101,tch,COUNTOF(tch));
lstrcat(tch,"|");
p1 = tch;
while (p2 = strchr(p1,'|')) {
*p2++ = '\0';
if (*p1)
SendDlgItemMessage(hwnd,100,CB_ADDSTRING,0,(LPARAM)p1);
p1 = p2;
}
SendDlgItemMessage(hwnd,100,CB_SETCURSEL,(WPARAM)*piOption,0);
SendDlgItemMessage(hwnd,100,CB_SETEXTENDEDUI,TRUE,0);
if (bFixLineEndings)
CheckDlgButton(hwnd,IDC_CONSISTENTEOLS,BST_CHECKED);
CenterDlgInParent(hwnd);
}
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK: {
*piOption = SendDlgItemMessage(hwnd,100,CB_GETCURSEL,0,0);
bFixLineEndings = (IsDlgButtonChecked(hwnd,IDC_CONSISTENTEOLS) == BST_CHECKED) ? 1 : 0;
EndDialog(hwnd,IDOK);
}
break;
case IDCANCEL:
EndDialog(hwnd,IDCANCEL);
break;
}
return TRUE;
}
return FALSE;
}
//=============================================================================
//
// SelectLineEndingDlg()
//
BOOL SelectLineEndingDlg(HWND hwnd,int *iOption)
{
int iResult;
iResult = DialogBoxParam(
g_hInstance,
MAKEINTRESOURCE(IDD_EOLMODE),
hwnd,
SelectLineEndingDlgProc,
(LPARAM)iOption);
return (iResult == IDOK) ? TRUE : FALSE;
}
//=============================================================================
//
// InfoBoxDlgProc()
//
//
typedef struct _infobox {
int uidMessage;
LPCSTR lpstrSetting;
} INFOBOX, *LPINFOBOX;
BOOL CALLBACK InfoBoxDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
char tch[512];
static LPINFOBOX lpib;
switch(umsg)
{
case WM_INITDIALOG:
lpib = (LPINFOBOX)lParam;
SendDlgItemMessage(hwnd,IDC_INFOBOXICON,STM_SETICON,
(WPARAM)LoadIcon(NULL,IDI_EXCLAMATION),0);
GetString(lpib->uidMessage,tch,COUNTOF(tch));
SetDlgItemText(hwnd,IDC_INFOBOXTEXT,tch);
CenterDlgInParent(hwnd);
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
case IDYES:
case IDNO:
if (IsDlgButtonChecked(hwnd,IDC_INFOBOXCHECK))
IniSetInt("Suppressed Messages",lpib->lpstrSetting,1);
EndDialog(hwnd,LOWORD(wParam));
break;
}
return TRUE;
}
return FALSE;
}
//=============================================================================
//
// InfoBox()
//
//
int InfoBox(int iType,int uidMessage,LPCSTR lpstrSetting)
{
HWND hwnd;
int idDlg;
INFOBOX ib;
if (IniGetInt("Suppressed Messages",lpstrSetting,0))
return (iType == MBYESNO) ? IDYES : IDOK;
idDlg = (iType == MBYESNO) ? IDD_INFOBOX2 : IDD_INFOBOX;
ib.uidMessage = uidMessage;
ib.lpstrSetting = lpstrSetting;
if (!(hwnd = GetFocus()))
hwnd = hwndMain;
MessageBeep(MB_ICONEXCLAMATION);
return DialogBoxParam(
g_hInstance,
MAKEINTRESOURCE(idDlg),
hwnd,
InfoBoxDlgProc,
(LPARAM)&ib);
}
// End of Dialogs.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -