📄 dialogdlg.cpp
字号:
m_ExplainViewBackGround=GetColor(buf);
m_View.SetBKColor(m_ExplainViewBackGround);
GetPrivateProfileString(ThemeColors,"ExplainViewBorder","",buf,MAX_PATH,strFileName);
m_ExplainViewBorder=GetColor(buf);
GetPrivateProfileString(ThemeColors,"NormalText","",buf,MAX_PATH,strFileName);
m_NormalText=GetColor(buf);
//设置边框
m_bmpBottomBorder.LoadImage(m_strPathName + "\\" + "BottomBorder.bmp") ;
m_bmpRightBorder.LoadImage(m_strPathName + "\\" +"RightBorder.bmp") ;
GetPrivateProfileString(ThemeMetrics,"BorderSizes","",buf,MAX_PATH,strFileName);
m_BorderSizes=GetRect(buf);
//Tab
m_Panel.LoadBitmap(m_strPathName + "\\" +"LeftPanel.bmp");
m_Panel.SetExtendPoint(50,40);
m_Tab.SetParent(&m_Panel);
m_Tab.LoadBitmap(m_strPathName + "\\" +"TabBkgrd.bmp");
m_Tab.Clear();
m_Tab.AddTab(m_strPathName + "\\" +"TabIndex.bmp");
m_Tab.AddTab(m_strPathName + "\\" +"TabWizard.bmp");
m_Tab.AddTab(m_strPathName + "\\" +"TabSearch.bmp");
m_Tab.AddTab(m_strPathName + "\\" +"TabAppendix.bmp");
m_Title.LoadBitmap(m_strPathName + "\\" +"LeftTitleBar.bmp") ;
m_Title.SetParent(&m_Panel);
GetPrivateProfileString(ThemeMetrics,"LeftTitleBarPos","",buf,MAX_PATH,strFileName);
m_LeftTitleBarPos=GetSize(buf);
m_Title.SetWindowPos(NULL,m_LeftTitleBarPos.cx ,m_LeftTitleBarPos.cy,154,26, NULL);
m_Title.SetText("附录",10,RGB(0,0,0));
m_btnUp.SetParent(&m_Title);
m_btnUp.SetWindowPos(NULL,90,0,100,100, SWP_NOSIZE);
m_btnUp.LoadBitmap(m_strPathName + "\\" +"jumpnext.bmp");
m_btnDown.SetParent(&m_Title);
m_btnDown.SetWindowPos(NULL,113,0,100,100, SWP_NOSIZE);
m_btnDown.LoadBitmap(m_strPathName + "\\" +"jumpprev.bmp");
//MainTitle
m_MainTitle.LoadBitmap(m_strPathName + "\\" +"MainTitle.bmp");
m_MainTitle.SetExtendPoint(100,0);
m_MainTitle.SetText("输入:",25,m_NormalText);
m_btnGo.LoadBitmap(m_strPathName + "\\" +"Go.bmp");
m_btnGo.SetParent(&m_MainTitle);
m_btnDropDown.LoadBitmap(m_strPathName + "\\" +"GoDropDown.bmp");
m_btnDropDown.SetParent(&m_MainTitle);
m_btnHelp.LoadBitmap(m_strPathName + "\\" +"HelpMe.bmp");
m_btnHelp.SetParent(&m_MainTitle);
m_btnFore.LoadBitmap(m_strPathName + "\\" +"Foreward.bmp");
m_btnFore.SetParent(&m_MainTitle);
m_btnBack.LoadBitmap(m_strPathName + "\\" +"Backward.bmp");
m_btnBack.SetParent(&m_MainTitle);
m_btnMenu.LoadBitmap(m_strPathName + "\\" +"MENUS.BMP");
m_btnMenu.SetParent(&m_MainTitle);
GetPrivateProfileString(ThemeMetrics,"ButtonGoPos","",buf,MAX_PATH,strFileName);
m_ButtonGoPos=GetSize(buf);
GetPrivateProfileString(ThemeMetrics,"ButtonGoDropDownPos","",buf,MAX_PATH,strFileName);
m_ButtonGoDropDownPos=GetSize(buf);
GetPrivateProfileString(ThemeMetrics,"ButtonHelpMePos","",buf,MAX_PATH,strFileName);
m_ButtonHelpMePos=GetSize(buf);
GetPrivateProfileString(ThemeMetrics,"ButtonBackwardPos","",buf,MAX_PATH,strFileName);
m_ButtonBackwardPos=GetSize(buf);
GetPrivateProfileString(ThemeMetrics,"ButtonForewardPos","",buf,MAX_PATH,strFileName);
m_ButtonForewardPos=GetSize(buf);
GetPrivateProfileString(ThemeMetrics,"ButtonMenusPos","",buf,MAX_PATH,strFileName);
m_ButtonMenusPos=GetSize(buf);
m_btnGo.SetWindowPos(NULL,cx+m_ButtonGoPos.cx ,m_ButtonGoPos.cy ,0,0, SWP_NOSIZE);
m_btnDropDown.SetWindowPos(NULL,cx+m_ButtonGoDropDownPos.cx ,m_ButtonGoDropDownPos.cy ,0,0, SWP_NOSIZE);
m_btnHelp.SetWindowPos(NULL,cx+m_ButtonHelpMePos.cx ,m_ButtonHelpMePos.cy,0,0, SWP_NOSIZE);
m_btnBack.SetWindowPos(NULL,cx+m_ButtonBackwardPos.cx ,m_ButtonBackwardPos.cy,0,0, SWP_NOSIZE);
m_btnFore.SetWindowPos(NULL,cx+m_ButtonForewardPos.cx ,m_ButtonForewardPos.cy,0,0, SWP_NOSIZE);
m_btnMenu.SetWindowPos(NULL,cx+m_ButtonMenusPos.cx ,m_ButtonMenusPos.cy,0,0, SWP_NOSIZE);
m_cbFind.SetParent(&m_MainTitle);
m_cbFind.SetWindowPos(NULL,77 ,5,cx+m_ButtonGoPos.cx-80,15, NULL);
//ToolBar
m_ToolBar.LoadTBImage(IDB_TOOLBAR,RGB(255,0,255));
m_ToolBar.LoadBitmap(m_strPathName + "\\" +"RightTitleBar.bmp");
m_ToolBar.SetExtendPoint(50,0);
m_btnHide.LoadBitmap(m_strPathName + "\\" +"HideLeft.bmp");
m_btnHide.SetParent(&m_ToolBar);
CList<UINT, UINT> lstToolBarCommands;
lstToolBarCommands.AddTail (ID_COPY);
lstToolBarCommands.AddTail (ID_READ);
lstToolBarCommands.AddTail (ID_SAVE);
lstToolBarCommands.AddTail (ID_PRINT);
lstToolBarCommands.AddTail (ID_FIND);
lstToolBarCommands.AddTail (ID_NOTE);
m_ToolBar.SetBasicCommands(lstToolBarCommands);
m_ToolBar.SetTextColor(m_NormalText);
m_ToolBar.SetSizes(CSize(24,24),CSize(16,16));
//View
m_View.LoadBKImage(m_strPathName + "\\" +"ViewBkgrd.bmp");
m_View.SetBorderColor(m_ExplainViewBorder);
//StatusBar
CList<UINT, UINT> lstStatusBarCommands;
lstStatusBarCommands.AddTail (ID_SEARCH);
lstStatusBarCommands.AddTail (ID_SCHEME);
lstStatusBarCommands.AddTail (ID_SETUP);
m_StatusBar.SetBasicCommands(lstStatusBarCommands);
m_StatusBar.LoadBitmap(m_strPathName + "\\" +"StatusBar.bmp");
m_StatusBar.SetExtendPoint(50,0);
m_StatusBar.LoadSBImage(m_strPathName + "\\" +"StatusToolBar.bmp");
GetPrivateProfileString(ThemeColor,"COLOR_FLATBK","",buf,MAX_PATH,strFileName);
m_crFlatBK=GetColor(buf);
GetPrivateProfileString(ThemeColor,"COLOR_FLATHIGHLIGHT","",buf,MAX_PATH,strFileName);
m_crFlatHighLight=GetColor(buf);
GetPrivateProfileString(ThemeColor,"COLOR_HIGHLIGHT","",buf,MAX_PATH,strFileName);
m_crHighLight=GetColor(buf);
GetPrivateProfileString(ThemeColor,"COLOR_FLATGRAY","",buf,MAX_PATH,strFileName);
m_crFlatGray=GetColor(buf);
GetPrivateProfileString(ThemeColor,"COLOR_BTNSHADOW","",buf,MAX_PATH,strFileName);
m_crBtnShadow=GetColor(buf);
GetPrivateProfileString(ThemeColor,"COLOR_FLATHIGHLIGHTTEXT","",buf,MAX_PATH,strFileName);
m_crFlatHighLightText=GetColor(buf);
//更新整个区域
Invalidate();
}
void CDialogDlg::SplitString(char *buf,int nCount,CStringList& strList)
{
char *p1=buf;
for (int i=0;i<nCount;i++)
{
char *p2=p1;
while ((*p1 != ',') && (*p1 != '\0'))
{
p1++;
}
CString str(p2);
str=str.Left(p1-p2) ;
strList.AddTail(str);
p1++;
}
}
CSize CDialogDlg::GetSize(char *buf)
{
CStringList strList;
SplitString(buf,2,strList);
CSize sz;
sz.cx =atoi(strList.GetAt(strList.FindIndex(0) ));
sz.cy =atoi(strList.GetAt(strList.FindIndex(1) ));
return sz;
}
CRect CDialogDlg::GetRect(char *buf)
{
CStringList strList;
SplitString(buf,4,strList);
CRect rc;
rc.left =atoi(strList.GetAt(strList.FindIndex(0) ));
rc.top =atoi(strList.GetAt(strList.FindIndex(1) ));
rc.right =atoi(strList.GetAt(strList.FindIndex(2) ));
rc.bottom =atoi(strList.GetAt(strList.FindIndex(3) ));
return rc;
}
COLORREF CDialogDlg::GetColor(char *buf)
{
CStringList strList;
SplitString(buf,3,strList);
return RGB(atoi(strList.GetAt(strList.FindIndex(0) )),atoi(strList.GetAt(strList.FindIndex(1))),atoi(strList.GetAt(strList.FindIndex(2))));
}
CString CDialogDlg::GetPathName(const char *filename)
{
char path[MAX_PATH];
strcpy( path, filename );
char *p = path + strlen( path );
for ( ; *p != '\\' && *p != '/' && p > path; p-- );
if ( *p == '\\' || *p == '/')
p++;
*p = 0;
return CString(path);
}
void CDialogDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
lpMMI->ptMinTrackSize.x=500;
lpMMI->ptMinTrackSize.y=500;
CDialog::OnGetMinMaxInfo(lpMMI);
}
void CDialogDlg::OnScheme()
{
CWnd *pWnd=m_StatusBar.GetDlgItem(ID_SCHEME);
CRect rc;
pWnd->GetWindowRect(&rc);
CSkinMenu m_menu;
m_menu.CreatePopupMenu();
m_menu.AppendMenu(MF_ENABLED |MF_OWNERDRAW,ID_SCHEME_DEFAULT,"默认");
m_menu.AppendMenu(MF_ENABLED |MF_OWNERDRAW,ID_SCHEME_BLUE,"蓝色天空");
m_menu.AppendMenu(MF_ENABLED |MF_OWNERDRAW,ID_SCHEME_SLIVER,"银色");
m_menu.AppendMenu(MF_ENABLED |MF_OWNERDRAW,ID_SCHEME_GREEN,_T("橄榄树"));
//m_menu.ChangeStyle(0);
m_menu.CheckMenuItem(m_nMenuID,MF_BYCOMMAND | MF_CHECKED );
m_menu.SetBKColor(m_crFlatBK,m_crFlatGray);
m_menu.SetHighLightColor(m_crFlatHighLight,m_crHighLight,m_crFlatHighLightText,m_crBtnShadow);
m_menu.TrackPopupMenu(TPM_CENTERALIGN , rc.left ,rc.bottom ,this,CRect(0,0,101,100));
}
void CDialogDlg::OnSchemeBlue()
{
// TODO: Add your command handler code here
LoadSkin("Themes\\BlueTheme\\BlueTheme.ini");
m_nMenuID=ID_SCHEME_BLUE;
}
void CDialogDlg::OnSchemeSliver()
{
// TODO: Add your command handler code here
LoadSkin("Themes\\SilverTheme\\SilverTheme.ini");
m_nMenuID=ID_SCHEME_SLIVER;
}
void CDialogDlg::OnSchemeDefault()
{
// TODO: Add your command handler code here
LoadSkin("Themes\\DefaultTheme\\DefaultTheme.ini");
m_nMenuID=ID_SCHEME_DEFAULT;
}
void CDialogDlg::OnSchemeGreen()
{
// TODO: Add your command handler code here
LoadSkin("Themes\\GreenTheme\\GreenTheme.ini");
m_nMenuID=ID_SCHEME_GREEN;
}
void CDialogDlg::SetViewSize(int cx, int cy)
{
if (m_bShow)
{
m_ToolBar.SetWindowPos(NULL,192,40,cx-192-3,25,NULL);
m_ToolBar.Invalidate();
m_btnHide.SetWindowPos(NULL,0,0,10,10,SWP_NOSIZE);
m_View.SetWindowPos(NULL,192,65,cx-192-4,cy-27-25-40-3, NULL);
m_View.Invalidate();
m_StatusBar.SetWindowPos(NULL,192,cy-27-3,cx-192-3,27, NULL);
m_StatusBar.Invalidate();
}
else
{
m_ToolBar.SetWindowPos(NULL,0,40,cx-3,25,NULL);
m_ToolBar.Invalidate();
m_btnHide.SetWindowPos(NULL,0,0,10,10,SWP_NOSIZE);
m_View.SetWindowPos(NULL,0,65,cx-4,cy-27-25-40-3, NULL);
m_View.Invalidate();
m_StatusBar.SetWindowPos(NULL,0,cy-27-3,cx-3,27, NULL);
m_StatusBar.Invalidate();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -