【VC开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了VC开源代码-MainWnd.cpp的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
/*
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
文件:MainWnd.cpp
版权:Firebird Software Workroom 保留
声明:本源程序的版权受《中华人民共和国著作权法》以及其
它相关法律和条约的保护。任何有机会得到本源程序的
个人和机构,未经作者明确授权,不得将本源程序用于
任何商业目的(直接的或间接的)。对于非商业目的的使
用 (包括复制、传播、编译和修改), 原则上没有特别
的限制条款,但请在相关文档中说明其来源,并尊重原
作者的署名权。
编写:秦传安(chings) 2000.5
联络:Tel:(0792)6323086 E_mail:chings@163.net
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
#include "fclstd.h"
#include "resource.h"
#include "ScreenCap.h"
#include "FBCommDlg.h"
#include "CapForm.h"
#include "ResizeDlg.h"
#include "SetingDlg.h"
#include "MainWnd.h"
#include "about.h"
#define IDW_TABCTRLBAR 0xE851
#define IDW_COOLBAR 0xE852
#define ID_TRAYICON 9201//托盘图标的标识符
#define ID_HOTKEY 9202//热键的标识符
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMainWnd::CMainWnd()
{
m_WndPlm.flags = WPF_RESTORETOMAXIMIZED;
m_WndPlm.length = sizeof(WINDOWPLACEMENT);
m_bIconMode = FALSE;//托盘图标的标志,TRUE:图标启动;FALSE:未启动
m_nNewCount = 0;
m_strDefDir[0] = '\0';
m_strBackFile[0] = '\0';
m_bHotkey = FALSE;
}
CMainWnd::~CMainWnd()
{
}
////////////////////////////////////////////////////////////////////////////////////////
LRESULT CMainWnd::WindowProc(UINT msg,WPARAM wParam,LPARAM lParam)
{
LRESULT lResult = 0;
switch(msg)
{
case FBNM_TRAYICON://托盘图标的消息标识符
{
if(wParam != ID_TRAYICON)//不是本程序定义的托盘图标,则返回。
return 0;
if(lParam == WM_RBUTTONUP)//右键,弹出菜单
m_TrayIcon.PopupMenu();
else if(lParam == WM_LBUTTONDBLCLK)//左键双击,开关主窗口
{
if(IsShow())
ShowWindow(m_hWnd,SW_HIDE);
else
ShowWindow(m_hWnd,SW_SHOW);
}
lResult = 1;
}
break;
case WM_SHOWWINDOW:
ShowStateChange((BOOL)wParam);
break;
//用户单击最小化按钮,则启动托盘图标。
case WM_SYSCOMMAND:
if(wParam == SC_MINIMIZE)
{
ShowWindow(m_hWnd,SW_HIDE);
if(!m_bIconMode)
{
m_bIconMode = TRUE;
m_TrayIcon.SetIcon(LoadIcon(GetInstance(),
MAKEINTRESOURCE(IDI_MAINICON)));
m_TrayIcon.Open();
m_wndToolBar.CheckedButton(ID_ICONMODE,TRUE);
}
}
else
lResult = DefWindowProc(m_hWnd,msg,wParam,lParam);
break;
case WM_DRAWCLIPBOARD:
{
int fmt = CountClipboardFormats();
if(fmt == CF_BITMAP)
{
m_wndToolBar.EnableButton(ID_EDITPASTE,TRUE);
m_wndMenuBar.EnableMenuItem(ID_EDITPASTE,TRUE);
}
else
{
m_wndToolBar.EnableButton(ID_EDITPASTE,FALSE);
m_wndMenuBar.EnableMenuItem(ID_EDITPASTE,FALSE);
}
}
break;
case WM_CLOSE:
GetWindowPlacement(m_hWnd,&m_WndPlm);
case WM_HOTKEY:
if(wParam == ID_HOTKEY)
OnCapScreen();
break;
default:
lResult = CFBFrameWnd::WindowProc(msg,wParam,lParam);
break;
}
return lResult;
}
////////////////////////////////////////////////////////////////////////////////////////
BOOL CMainWnd::OnCreate()
{
//创建CoolBar,用于加载工具栏和菜单栏。
if(!m_wndCoolBar.Create(NULL,this,CBS_BORDER_RECT|CBS_GRIPPER,26,26,IDW_COOLBAR))
return FALSE;
//创建并加载菜单栏。
if(!m_wndMenuBar.Create(this,NULL,IDW_MAINMENU))
return FALSE;
HMENU hMenu = LoadMenu(GetInstance(), MAKEINTRESOURCE(IDM_MAINMENU));
if(!m_wndMenuBar.LoadMenu(hMenu,FALSE))
return FALSE;
CB_BANDINFO cbif;
cbif.bShow = TRUE;
cbif.cxMinSize = 300;
cbif.cyMinSize = 20;
cbif.nLines = 0;
cbif.hWnd = m_wndMenuBar.m_hWnd;
cbif.uID = IDM_MAINMENU;
cbif.cchText = 0;
m_wndCoolBar.AddBand(&cbif);
//创建并加载工具栏
if(!m_wndToolBar.Create(this,NULL,IDW_TOOLBAR))
return FALSE;
if(!m_wndToolBar.LoadToolBar(IDT_TOOLBAR))
return FALSE;
cbif.cchText = 0;
cbif.cxMinSize = 300;
cbif.cxText = NULL;
cbif.cyMinSize = 22;
cbif.hWnd = m_wndToolBar.m_hWnd;
cbif.nLines = 1;
cbif.uID = IDW_TOOLBAR;
m_wndCoolBar.AddBand(&cbif);
m_wndCoolBar.Docking(CB_DOCK_TOP);
//创建状态栏
if(!m_wndStatusBar.Create(this,IDW_STATUSBAR))
return FALSE;
int pParts[4];
pParts[0] = 180;
pParts[1] = 240;
pParts[2] = 300;
pParts[3] = 420;
m_wndStatusBar.SetParts(4,pParts);
m_wndStatusBar.SetText(0,"就绪");
//创建客户视图
if(!m_wndChildView.Create(this,IDW_TABCTRLBAR,CCS_TOP|TCS_FOCUSNEVER))
return FALSE;
HICON hIcon = LoadIcon(GetInstance(),MAKEINTRESOURCE(IDI_MAINICON));
m_TrayIcon.Create(this,ID_TRAYICON,hIcon,"屏幕捕快");
m_TrayIcon.SetMenu(IDR_POPUP);
CScreenCap* pApp = GetApp();
if(!pApp->RegGetBinary("Config","Setings",(LPBYTE)&m_setings,sizeof(APP_SETINGS)))
{
m_setings.bAutoShowWnd = TRUE;
m_setings.chKey = 'K';
m_setings.clrGradHi = RGB(203,185,156);
m_setings.clrGradLo = RGB(158,139,117);
m_setings.clrViewBack = RGB(0,128,128);
m_setings.nDefaultFmt = 0;
m_setings.nStartMode = 0;
m_setings.nToolBarBackMod = 1;
m_setings.uHotkeyMod = MOD_CONTROL;
m_setings.nGradStyle = 3;
}
if(!pApp->RegGetString("Config","DefaultSaveDir",m_strDefDir,MAX_PATH))
lstrcpy(m_strDefDir,"c:\\windows\\temp\\");
if(m_setings.nToolBarBackMod == 1)
m_wndCoolBar.UseGradientBk(m_setings.clrGradLo,m_setings.clrGradHi,m_setings.nGradStyle);
else if(m_setings.nToolBarBackMod == 2)
{
if(pApp->RegGetString("Config","ToolBarBkFile",m_strBackFile,MAX_PATH))
{
HBITMAP hbmp = (HBITMAP)LoadImage(NULL,m_strBackFile,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
if(hbmp)
m_wndCoolBar.SetBkBitmap(hbmp);
else
m_setings.nToolBarBackMod = 0;
}
else
m_setings.nToolBarBackMod = 0;
}
m_wndChildView.m_clrBack = m_setings.clrViewBack;
SetClipboardViewer(m_hWnd);
InitUI();
m_bHotkey = RegisterHotKey(m_hWnd,ID_HOTKEY,
m_setings.uHotkeyMod,m_setings.chKey);
return TRUE;
}
///////////////////////////////////////////////////////////////////////////////////////
void CMainWnd::InitUI()
{
m_wndToolBar.EnableButton(ID_FILECLOSE,FALSE);
m_wndToolBar.EnableButton(ID_FILE_CLOSEALL,FALSE);
m_wndToolBar.EnableButton(ID_FILESAVE,FALSE);
m_wndToolBar.EnableButton(ID_FILE_SAVEAS,FALSE);
m_wndToolBar.EnableButton(ID_FILEPRINT,FALSE);
m_wndToolBar.EnableButt
上一篇:
mainView.cpp
下一篇:
学校党建工作论文