📄 optiondlg.cpp
字号:
// OptionDlg.cpp: implementation of the COptionDlg class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "OptionDlg.h"
#include "List.h"
#include "SelectColorDlg.h"
#include <Wingdi.h>
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
COLORREF COptionDlg::m_crStandardColors[] =
{
RGB(0,0,0), //dark
RGB(192,192,192),//light grey
RGB(128,128,128),//dark grey
RGB(255,255,255),//write
RGB(255,0,0),//red
RGB(255,255,0),//yellow
RGB(0,255,0),//green
RGB(0,0,255),//blue
RGB(255,0,255),//purple
RGB(0,255,255),//teal
RGB(128,0,0),//dark red
RGB(128,128,0),//dark yellow
RGB(0,128,0),//dark green
RGB(0,0,128),//dark blue
RGB(128,0,128),//dark purple
RGB(0,128,128),//dark teal
};
COptionDlg::COptionDlg()
{
m_ListNo = 0;
}
COptionDlg::~COptionDlg()
{
}
LRESULT COptionDlg::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
g_hWndLast = m_hWnd;
LoadSHMenuBar(MAKEINTRESOURCE(IDR_OKMENU));
SendMessage(m_hWndCB,WM_PAINT,0,0);
UINT ListID = IDC_CODETYPELIST;
UINT SpinID = IDC_CODETYPESPIN;
int SettingNum[6];
SettingNum[0] = 1;
SettingNum[1] = 3;
SettingNum[2] = 4;
SettingNum[3] = 16;
SettingNum[4] = 16;
SettingNum[5] = 3;
UINT SettingID = CODETYPE1_TXT;
CString SettingStr;
for (int i = 0; i < 6 ;i ++)
{
m_ListBox[i].SubclassWindow(GetDlgItem (ListID));
if (i == 4)
SettingID -= 16;
if ((i == 3 ) || (i == 4))
m_ListBox[i].EnableRGBBorder(TRUE);
else
m_ListBox[i].EnableRGBBorder(FALSE);
for (int j = 0 ; j < SettingNum[i] ; j++)
{
SettingStr.LoadString(SettingID);
if ((i == 3) || (i == 4))
{
m_ListBox[i].AddItem(SettingStr,m_crStandardColors[j]);
}
else
{
m_ListBox[i].AddItem(SettingStr);
}
SettingID ++;
}
m_ListBox[i].SetCurSel(m_Setting[i]);
m_Spin[i].Attach(GetDlgItem(SpinID));
DWORD dwStyle = m_Spin[i].GetStyle();
dwStyle |= UDS_EXPANDABLE;
m_Spin[i].ModifyStyle(0,dwStyle);
ListID ++;
SpinID ++;
}
m_LastPosCheck.Attach(GetDlgItem(IDC_LASTPOSITION));
m_LastPosCheck.SetCheck(m_Setting[6]);
m_ListBox[0].SetFocus();
return 0;
}
LRESULT COptionDlg::OnCancel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
g_hWndLast = NULL;
EndDialog(IDCANCEL);
return 0;
}
LRESULT COptionDlg::OnOk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
g_hWndLast = NULL;
for(int i = 0; i < 6 ; i++)
{
m_Setting[i] = m_ListBox[i].GetCurSel();
}
m_Setting[6] = m_LastPosCheck.GetCheck();
EndDialog(IDOK);
return 0;
}
LRESULT COptionDlg::OnSetListNo(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
m_ListNo = wID - IDC_CODETYPELIST;
UpdateWindow();
return 0;
}
LRESULT COptionDlg::OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
// TODO : Add Code for message handler. Call DefWindowProc if necessary.
CPaintDC dc(m_hWnd);
LOGFONT lf;
ZeroMemory(&lf,sizeof(lf));
lstrcpy(lf.lfFaceName, _T("Arial"));
lf.lfWeight = 600;
lf.lfHeight = 15;
CFont NewFont;
NewFont.CreateFontIndirect(&lf);
UINT TitleID = IDC_TYPETITLE;
CStatic Titles;
for (int i = 0; i < 6 ; i++)
{
Titles.Attach(GetDlgItem(TitleID + i));
Titles.SetFont(NewFont.m_hFont);
}
NewFont.DeleteObject();
return 0;
}
LRESULT COptionDlg::OnExpandItem(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
{
// TODO : Add Code for control notification handler.
CSelectColorDlg ExpandDlg;
ExpandDlg.m_SelectItemNo = m_ListBox[m_ListNo].GetCurSel();
CString ItemStr;
for (int i = 0 ; i < m_ListBox[m_ListNo].GetCount() ; i ++)
{
m_ListBox[m_ListNo].GetText(i,ItemStr);
ExpandDlg.m_ListItem.Add((CString)ItemStr);
}
if ((m_ListNo == 3) || (m_ListNo == 4))
ExpandDlg.m_ColorfulFlag = TRUE;
else
ExpandDlg.m_ColorfulFlag = FALSE;
TCHAR ExpandTitle[255];
memset(ExpandTitle, 0 , sizeof(ExpandTitle));
::GetWindowText(GetDlgItem(IDC_TYPETITLE + m_ListNo),ExpandTitle,255);
ExpandDlg.m_Title = ExpandTitle;
ExpandDlg.m_Title = ExpandDlg.m_Title.Left(ExpandDlg.m_Title.GetLength() - 1);
if (ExpandDlg.DoModal() == IDOK)
{
m_ListBox[m_ListNo].SetCurSel(ExpandDlg.m_SelectItemNo);
UpdateWindow();
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -