亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mainfrm.cpp

?? 一個簡單的個人所得稅計算器,可以編輯稅率表和所在地列表.
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "PITC.h"

#include "MainFrm.h"
#include "CessDlg.h"
#include "AreaDlg.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern CString cessFlag;
extern CString areaFlag;
extern BOOL modified;
extern CString pathname;
extern CString filename;
/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_COMMAND(ID_COMPUT, OnComput)
	ON_COMMAND(ID_CESS_ADD, OnCessAdd)
	ON_COMMAND(ID_CESS_INSERT, OnCessInsert)
	ON_COMMAND(ID_CESS_EDIT, OnCessEdit)
	ON_COMMAND(ID_CESS_DELETE, OnCessDelete)
	ON_COMMAND(ID_CESS_CLEAR, OnCessClear)
	ON_WM_DESTROY()
	ON_COMMAND(ID_CONFIG_SAVE, OnConfigSave)
	ON_COMMAND(ID_CONFIG_LOAD, OnConfigLoad)
	ON_UPDATE_COMMAND_UI(ID_CESS_DELETE, OnUpdateCessDelete)
	ON_UPDATE_COMMAND_UI(ID_CESS_EDIT, OnUpdateCessEdit)
	ON_COMMAND(ID_AREA_ADD, OnAreaAdd)
	ON_COMMAND(ID_AREA_CLEAR, OnAreaClear)
	ON_COMMAND(ID_AREA_DELETE, OnAreaDelete)
	ON_UPDATE_COMMAND_UI(ID_AREA_DELETE, OnUpdateAreaDelete)
	ON_COMMAND(ID_AREA_EDIT, OnAreaEdit)
	ON_UPDATE_COMMAND_UI(ID_AREA_EDIT, OnUpdateAreaEdit)
	ON_COMMAND(IDR_KROMO, OnKromo)
	ON_UPDATE_COMMAND_UI(IDR_KROMO, OnUpdateKromo)
	ON_COMMAND(IDR_DEVIOR, OnDevior)
	ON_UPDATE_COMMAND_UI(IDR_DEVIOR, OnUpdateDevior)
	ON_COMMAND(IDR_CORONA, OnCorona)
	ON_UPDATE_COMMAND_UI(IDR_CORONA, OnUpdateCorona)
	ON_COMMAND(ID_CALC, OnCalc)
	ON_WM_CLOSE()
	ON_COMMAND(ID_CONFIG_NEW, OnConfigNew)
	ON_COMMAND(ID_CONFIG_SAVEAS, OnConfigSaveas)
	ON_COMMAND(ID_COMPUTVIEW_RESET, OnComputviewReset)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

static UINT indicators[] =
{
	ID_SEPARATOR,           // status line indicator
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
	m_bCreatedOK=FALSE;
	m_bCessEdit=FALSE;
	m_bCessDelete=FALSE;
	m_bAreaEdit=FALSE;
	m_bAreaDelete=FALSE;
}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	//AfxMessageBox("OnCreate!");
	/////////
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0("Failed to create toolbar\n");
		return -1;      // fail to create
	}

	if (!m_wndStatusBar.Create(this) ||
		!m_wndStatusBar.SetIndicators(indicators,
		  sizeof(indicators)/sizeof(UINT)))
	{
		TRACE0("Failed to create status bar\n");
		return -1;      // fail to create
	}

	// TODO: Delete these three lines if you don't want the toolbar to
	//  be dockable
	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);

	SetLayout();
    CString str;
	str.LoadString(AFX_IDS_APP_TITLE);
	SetWindowText(str);
	CenterWindow();

	CMenu *pSystemMenu=GetSystemMenu(FALSE);
	pSystemMenu->AppendMenu(MF_SEPARATOR);
	pSystemMenu->AppendMenu(MF_STRING,ID_APP_ABOUT,_T("關于程序(&A)...")); //SK modified for Unicode
	////
	return 0;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
    cs.dwExStyle &= ~WS_EX_CLIENTEDGE;
//    cs.style &= ~WS_MAXIMIZEBOX; //禁止窗口最大化
//  cs.style &= ~WS_MINIMIZEBOX; //禁止窗口最小化
//  cs.style &= ~WS_SYSMENU; //取消Title上的按鈕
//  cs.style &= ~WS_THICKFRAME;//使窗口不能用鼠標改變大小
    cs.lpszClass = AfxRegisterWndClass(0);
    
	cs.style &= ~FWS_ADDTOTITLE;//去掉"無標題"

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
	CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers


BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
{
	// TODO: Add your specialized code here and/or call the base class
	
    //AfxMessageBox("OnCreateClient!");
	/////////
	/////////
    m_VSplitter.CreateStatic(this, 1, 2);

	m_VSplitter.CreateView(0, 1, RUNTIME_CLASS( CComputView ), CSize(0, 0), pContext);

	m_HSplitter.CreateStatic(&m_VSplitter, 2, 1,WS_CHILD | WS_VISIBLE, m_VSplitter.IdFromRowCol(0, 0));
	m_HSplitter.CreateView(0, 0, RUNTIME_CLASS( CConfigViewCess ), CSize(300, 0), pContext);
    m_HSplitter.CreateView(1, 0, RUNTIME_CLASS( CConfigViewArea ), CSize(300, 0), pContext);
    
	//m_VSplitter.CreateView(0, 2, RUNTIME_CLASS( CPITCView ), CSize(0, 0), pContext);

	
    CWnd *pView;
	pView=this->m_HSplitter.GetPane(0,0); 
    ASSERT(pView->IsKindOf(RUNTIME_CLASS(CConfigViewCess)));
	m_pConfigViewCess=(CConfigViewCess*)pView;
	pView=this->m_HSplitter.GetPane(1,0); 
    ASSERT(pView->IsKindOf(RUNTIME_CLASS(CConfigViewArea)));
	m_pConfigViewArea=(CConfigViewArea*)pView;

	pView=this->m_VSplitter.GetPane(0,1); 
    ASSERT(pView->IsKindOf(RUNTIME_CLASS(CComputView)));
	m_pComputView=(CComputView*)pView;

	m_pConfigDoc=new CConfigDoc;
	POSITION pos=m_pConfigDoc->GetFirstViewPosition();
	

	CDocument *pDoc;
	CRuntimeClass *prt;
	pDoc=m_pConfigViewCess->GetDocument();
	prt=pDoc->GetRuntimeClass();
	//AfxMessageBox(prt->m_lpszClassName);
	pDoc->RemoveView(m_pConfigViewCess);
    pDoc->RemoveView(m_pConfigViewArea);

	while(pos!=NULL)
	{
		    pView=m_pConfigDoc->GetNextView(pos);
			prt=pView->GetRuntimeClass();
			AfxMessageBox(prt->m_lpszClassName);
	}

    m_pConfigDoc->AddView(this->m_pConfigViewCess);
	m_pConfigDoc->AddView(this->m_pConfigViewArea);

	///////
	
	/////
	m_bCreatedOK=TRUE;
	////
	return TRUE;
	//return CFrameWnd::OnCreateClient(lpcs, pContext);
}


void CMainFrame::SetLayout()//初始化子框架中各切分子窗口的大小
{
	if(m_bCreatedOK)
 	{

		if(m_VSplitter.m_hWnd)
		{
 
 			int cx0, cx1, cxmin, cx;
 			m_VSplitter.GetColumnInfo(0, cx0, cxmin);
 			m_VSplitter.GetColumnInfo(1, cx1, cxmin);
			cx = cx0 + cx1;
 			int minCx0 = (int)(cx * 0.81);
 
 			if(cx0 != minCx0)
 			{
 				cx0 = minCx0;
 				m_VSplitter.SetColumnInfo(0, cx0 , cxmin);
			}
 			m_VSplitter.RecalcLayout();
 		}
	
	////
		if(m_HSplitter.m_hWnd)
		{
 
 			int cy0, cy1, cymin, cy;
 			m_HSplitter.GetRowInfo(0, cy0, cymin);
 			m_HSplitter.GetRowInfo(1, cy1, cymin);
			cy = cy0 + cy1;
 			int minCy0 = (int)(cy * 0.6);
 
 			if(cy0 != minCy0)
 			{
 				cy0 = minCy0;
 				m_HSplitter.SetRowInfo(0, cy0 , cymin);
			}
 			m_HSplitter.RecalcLayout();
 		}

		///
	}	
	
}

void CMainFrame::OnComput() 
{
	// TODO: Add your command handler code here
	this->m_pComputView->Comput();
}

void CMainFrame::OnCessAdd() 
{
	// TODO: Add your command handler code here
	cessFlag="ADD";
    CCessDlg dlg;
	dlg.DoModal();
	
}


void CMainFrame::OnCessInsert() 
{
	// TODO: Add your command handler code here
	cessFlag="INSERT";
    CCessDlg dlg;
	dlg.DoModal();
	
}

void CMainFrame::OnCessEdit() 
{
	// TODO: Add your command handler code here
	CListCtrlCess *pListCtrl;
	pListCtrl=(CListCtrlCess *)(&(this->m_pConfigViewCess->m_wndListCtrlCess));
	int count=pListCtrl->GetSelectedCount();
	if(0==count)
	{
		AfxMessageBox("請在稅率表中選中一行要編輯的數據!");
		return ;
	}
	///////
	cessFlag="EDIT";
    CCessDlg dlg;
	dlg.DoModal();

	this->m_pComputView->UpdateDisplay();
    
}

void CMainFrame::OnCessDelete() 
{
	// TODO: Add your command handler code here
	CListCtrlCess *pListCtrl;
	pListCtrl=(CListCtrlCess *)(&(this->m_pConfigViewCess->m_wndListCtrlCess));
	int count=pListCtrl->GetSelectedCount();
	if(0==count)
	{
		AfxMessageBox("請在稅率表中選中一行要刪除的數據!");
		return ;
	}
	
    POSITION pos = pListCtrl->GetFirstSelectedItemPosition();
	int m=pListCtrl->GetNextSelectedItem(pos);
	CString str;
	str.Format("確認要刪除稅率表第%d行數據嗎?",m+1);
	if (MessageBox(str,"用戶信息",MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2)==IDNO)
		    return;
	
	pListCtrl->DeleteItem(m);
	modified=TRUE;
	pListCtrl->UpdateNum();//更新級別序號

}

void CMainFrame::OnCessClear() 
{
	// TODO: Add your command handler code here
	CString str;
	str="確認要刪除稅率表中所有的數據嗎?";
	if (MessageBox(str,"用戶信息",MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2)==IDNO)
		    return;
    CListCtrl *pListCtrl;
	pListCtrl=&(this->m_pConfigViewCess->m_wndListCtrlCess);
	if(pListCtrl->GetItemCount()>0)
	{
	    pListCtrl->DeleteAllItems();
	    modified=TRUE;
	}

}



void CMainFrame::OnDestroy() 
{
	CFrameWnd::OnDestroy();
	
	// TODO: Add your message handler code here
	if(m_pConfigDoc)
	{
		delete m_pConfigDoc;
		m_pConfigDoc=NULL;
	}

}

void CMainFrame::OnConfigSave() 
{
	// TODO: Add your command handler code here
	if(pathname!="")
	{
		if(m_pConfigDoc->OnSaveDocument(pathname))
		{
			modified=FALSE;
		}	
	}
	else
	{
		//::SendMessage(this->GetSafeHwnd(),WM_COMMAND,ID_CONFIG_SAVEAS,NULL);
		if(DoFileSave(FALSE)==TRUE)
		{
			
			
		}
	    
	}

}



void CMainFrame::OnUpdateCessDelete(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女与黑人做爰| 一区二区三区欧美日| 欧美日韩国产精品成人| 99国产精品久久久久久久久久久| 国产精品一区二区黑丝| 国产福利一区二区三区视频| 国产传媒日韩欧美成人| 丁香六月久久综合狠狠色| 成人黄色电影在线| 99视频有精品| 欧美人与禽zozo性伦| 91麻豆精品国产91久久久使用方法| 91精品黄色片免费大全| 精品少妇一区二区三区日产乱码| 久久久久久黄色| |精品福利一区二区三区| 亚洲香肠在线观看| 日韩国产在线观看| 国产夫妻精品视频| 日本韩国精品在线| 欧美一区二区性放荡片| 久久精品人人爽人人爽| 中文字幕第一区二区| 一区二区高清视频在线观看| 无码av免费一区二区三区试看 | 91老师片黄在线观看| 99九九99九九九视频精品| 欧美午夜理伦三级在线观看| 欧美一区二区三区爱爱| 国产精品久久久久婷婷 | 91精品蜜臀在线一区尤物| 精品久久久久av影院| 亚洲欧美一区二区在线观看| 日韩经典中文字幕一区| 成人一道本在线| 欧美精品一级二级| 国产精品久久久久久久裸模| 日av在线不卡| 色综合久久久网| 精品sm捆绑视频| 亚洲国产综合91精品麻豆| 国产精品一区二区在线看| 欧美艳星brazzers| 欧美激情中文不卡| 蜜臀av国产精品久久久久| 91视频国产资源| 久久精品一区八戒影视| 天堂蜜桃一区二区三区| 一本到三区不卡视频| 久久精品男人天堂av| 日韩高清在线电影| 日本精品一级二级| 国产精品久久影院| 韩国一区二区在线观看| 日韩一区二区电影在线| 亚洲一区在线观看免费观看电影高清| 国产不卡视频一区二区三区| 精品国产免费视频| 麻豆国产精品一区二区三区 | 精品系列免费在线观看| 欧美精三区欧美精三区| 亚洲电影视频在线| 欧美午夜精品久久久久久孕妇| 国产精品二区一区二区aⅴ污介绍| 久久精品国产一区二区| 91精品国产91久久综合桃花| 亚洲大尺度视频在线观看| 色综合一区二区| 成人欧美一区二区三区黑人麻豆 | 91在线观看一区二区| 国产农村妇女毛片精品久久麻豆| 精品系列免费在线观看| 2023国产精品视频| 国产最新精品精品你懂的| 精品国产乱码久久| 国产一区二区日韩精品| 精品国产乱码91久久久久久网站| 狠狠狠色丁香婷婷综合激情| 久久综合精品国产一区二区三区| 精品一区二区免费视频| 久久精品一区四区| 97久久精品人人澡人人爽| 国产精品久久久久久亚洲伦| av电影在线观看不卡| 亚洲制服丝袜一区| 日韩欧美成人一区| 久久精品99久久久| 久久久www成人免费毛片麻豆| 国产精品一区免费在线观看| 亚洲视频图片小说| 欧美亚洲动漫精品| 蜜桃传媒麻豆第一区在线观看| 日韩精品影音先锋| 成人黄色在线看| 亚洲成人在线观看视频| 欧美mv日韩mv亚洲| www.99精品| 亚洲视频狠狠干| 欧美日本在线看| 韩国欧美国产1区| 亚洲精品视频在线看| 欧美日韩成人在线| 黄页视频在线91| 亚洲欧洲在线观看av| 欧美女孩性生活视频| 国产剧情在线观看一区二区| 亚洲精品欧美二区三区中文字幕| 5858s免费视频成人| 粉嫩嫩av羞羞动漫久久久| 一级做a爱片久久| 久久美女艺术照精彩视频福利播放| www.欧美日韩国产在线| 日本大胆欧美人术艺术动态| 欧美韩国一区二区| 91精品国产综合久久婷婷香蕉| 成人污视频在线观看| 石原莉奈在线亚洲三区| 国产精品乱码一区二区三区软件| 91精品久久久久久蜜臀| 一本大道久久a久久综合婷婷| 久久精品国产精品亚洲红杏| 亚洲人成精品久久久久| 2023国产精品视频| 制服丝袜亚洲播放| 色婷婷久久久综合中文字幕| 国产suv精品一区二区三区| 石原莉奈一区二区三区在线观看 | 精品国产免费人成在线观看| 在线观看精品一区| 成人免费黄色在线| 国产一区久久久| 免费在线成人网| 亚洲国产精品一区二区www| 中文字幕一区三区| 国产午夜精品久久| 精品国产区一区| 日韩欧美在线观看一区二区三区| 欧美视频在线一区| 色天天综合久久久久综合片| 北条麻妃一区二区三区| 国产精品一区专区| 国产河南妇女毛片精品久久久| 免费观看在线综合| 美腿丝袜亚洲综合| 免费成人小视频| 美国一区二区三区在线播放| 日本欧美加勒比视频| 亚洲 欧美综合在线网络| 性感美女久久精品| 午夜精品在线视频一区| 五月婷婷另类国产| 亚欧色一区w666天堂| 亚洲国产日产av| 天天综合色天天| 蜜桃av一区二区在线观看| 久久电影网电视剧免费观看| 美女诱惑一区二区| 国产经典欧美精品| 91在线精品一区二区三区| 91网上在线视频| 欧日韩精品视频| 666欧美在线视频| 精品奇米国产一区二区三区| 2017欧美狠狠色| 国产精品久久久久三级| 一区二区三区在线免费播放| 亚洲第一激情av| 久久se精品一区精品二区| 国产福利一区在线| 色噜噜久久综合| 制服丝袜中文字幕一区| 久久综合色天天久久综合图片| 国产三级精品视频| 亚洲一区免费在线观看| 日韩高清不卡在线| 国产成人在线影院| 一本一道久久a久久精品| 欧美性极品少妇| 欧美精品一区二区三区在线| 国产精品电影一区二区三区| 午夜精品福利一区二区三区蜜桃| 久国产精品韩国三级视频| 成人av网址在线观看| 91精品国产综合久久香蕉麻豆 | 一区二区三区小说| 美日韩一区二区三区| 91在线看国产| 亚洲精品在线三区| 亚洲精品日韩专区silk| 紧缚捆绑精品一区二区| 色88888久久久久久影院野外| 日韩欧美国产高清| 亚洲摸摸操操av| 久久99国产精品麻豆| 欧美午夜理伦三级在线观看| 中文字幕精品一区二区精品绿巨人| 亚洲午夜一区二区| 成人一区二区视频| 日韩欧美www| 香蕉成人啪国产精品视频综合网|