锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>void聽CTest31View::OnChar(UINT聽nChar,聽UINT聽nRepCnt,聽UINT聽nFlags)聽
{
聽聽聽聽//聽TODO:聽Add聽your聽message聽handler聽code聽here聽and/or聽call聽default
聽聽聽聽CClientDC聽dc(this);
聽聽聽聽TEXTMETRIC聽tm;
聽聽聽聽dc.GetTextMetrics(&tm);
聽聽聽聽if(0x0d聽==聽nChar)
聽聽聽聽
{
聽聽聽聽聽聽聽聽m_str.Empty();
聽聽聽聽聽聽聽聽m_point.y聽+=聽tm.tmHeight;
聽聽聽聽}
聽聽聽聽else聽if(0x08==nChar)
聽聽聽聽
{
聽聽聽聽聽聽聽聽COLORREF聽clr聽=聽dc.SetTextColor(dc.GetBkColor());
聽聽聽聽聽聽聽聽dc.TextOut(m_point.x,m_point.y,m_str);
聽聽聽聽聽聽聽聽m_str聽=聽m_str.Left(m_str.GetLength()-1);
聽聽聽聽聽聽聽聽dc.SetTextColor(clr);
聽聽聽聽}
聽聽聽聽else
聽聽聽聽
{
聽聽聽聽聽聽聽聽m_str聽+=聽nChar;
聽聽聽聽}
聽聽聽聽CSize聽sz聽=聽dc.GetTextExtent(m_str);
聽聽聽聽CPoint聽pt;
聽聽聽聽pt.x聽=聽m_point.x聽+聽sz.cx;
聽聽聽聽pt.y聽=聽m_point.y;
聽聽聽聽SetCaretPos(pt);
聽聽聽聽dc.TextOut(m_point.x,m_point.y,m_str);
聽聽聽聽CView::OnChar(nChar,聽nRepCnt,聽nFlags);
}
int聽CTest31View::OnCreate(LPCREATESTRUCT聽lpCreateStruct)聽
{
聽聽聽聽if聽(CView::OnCreate(lpCreateStruct)聽==聽-1)
聽聽聽聽聽聽聽聽return聽-1;
聽聽聽聽
聽聽聽聽//聽TODO:聽Add聽your聽specialized聽creation聽code聽here
聽聽聽聽CClientDC聽dc(this);
聽聽聽聽TEXTMETRIC聽tm;
聽聽聽聽dc.GetTextMetrics(&tm);
聽聽聽聽CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);
聽聽聽聽ShowCaret();
聽聽聽聽return聽0;
}
void聽CTest31View::OnLButtonDown(UINT聽nFlags,聽CPoint聽point)聽
{
聽聽聽聽//聽TODO:聽Add聽your聽message聽handler聽code聽here聽and/or聽call聽default
聽聽聽聽SetCaretPos(point);
聽聽聽聽m_str.Empty();
聽聽聽聽m_point聽=聽point;
聽聽聽聽CView::OnLButtonDown(nFlags,聽point);
}
涓績鎬濇兂錛歮_point琛ㄧず鐨勬槸鎻掑叆絎︾殑浣嶇疆錛宮_str鍒欒〃紺虹殑鏄緭鍏ョ殑瀛楃涓詫紒
瀵逛簬鍥炶濺鍜屽垹闄ら敭錛屽垯鐢ㄤ袱涓猧f鏉ュ垽鏂紝鍏蜂綋鐨勫疄鐜幫紝鍙傚姞浠g爜閮ㄥ垎錛屾瘮杈冪畝鍗曪紒錛?img src ="http://www.shnenglu.com/deercoder/aggbug/108215.html" width = "1" height = "1" />
]]>
浠g爜錛?br />void聽CTest30View::OnDraw(CDC*聽pDC)
{
聽CTest30Doc*聽pDoc聽=聽GetDocument();
聽ASSERT_VALID(pDoc);
聽//聽TODO:聽add聽draw聽code聽for聽native聽data聽here
聽CString聽str("Hello,world!");
聽CSize聽sz聽=聽pDC->GetTextExtent(str);
聽pDC->TextOut(50,50,str);
聽pDC->BeginPath();
聽pDC->Rectangle(50,50,50+sz.cx,50+sz.cy);
聽pDC->EndPath();
聽pDC->SelectClipPath(RGN_DIFF);
聽for(int聽i聽=聽0;聽i<200;聽i+=10)
聽
{
聽聽pDC->MoveTo(0,i);
聽聽pDC->LineTo(200,i);
聽聽pDC->MoveTo(i,0);
聽聽pDC->LineTo(i,200);
聽}
}
鍑芥暟錛堝緢澶氾級錛?br />BeginPath錛氭墦寮涓涓礬寰勫眰銆?br />EndPath錛氬叧闂竴涓礬寰勫眰銆?br />SelectClipPath錛氬皢褰撳墠璺緞灞備綔涓轟竴涓壀鍒囧尯鍩燂紝浠ヤ竴瀹氱殑妯″紡鍜屾柊鐨勫尯鍩熺粍鍚堛?br />Moveto錛氱Щ鍔ㄥ埌閭d竴涓偣銆?br />LineTo錛氱粯鍒朵竴鏉$洿綰垮埌閭d竴鐐逛負姝€傘?br />
]]>
涓嬮潰錛屾槸鎻掑叆涓涓狟itmap鍥懼儚鐨勭▼搴忥細int聽CTest28View::OnCreate(LPCREATESTRUCT聽lpCreateStruct)聽
{
聽聽聽聽if聽(CView::OnCreate(lpCreateStruct)聽==聽-1)
聽聽聽聽聽聽聽聽return聽-1;
聽聽聽聽
聽聽聽聽//聽TODO:聽Add聽your聽specialized聽creation聽code聽here
聽聽聽聽static聽CBitmap聽bitmap;聽聽聽聽聽聽聽聽//涓庤祫婧愮浉鍏崇殑瀵硅薄錛屽湪鏋愭瀯鏃墮攢姣?/span>
聽聽聽聽bitmap.LoadBitmap(IDB_BITMAP1);聽聽聽聽聽聽聽聽//灝嗗彉閲忎笌璧勬簮鍏寵仈
聽聽聽聽CreateCaret(&bitmap);聽聽聽聽//鍒涘緩鍥懼艦鎻掑叆絎?/span>
聽聽聽聽ShowCaret();聽聽聽聽//鏄劇ず鎻掑叆絎?/span>
聽聽聽聽return聽0;
}
void聽CTest28View::OnLButtonDown(UINT聽nFlags,聽CPoint聽point)聽
{
聽聽聽聽//聽TODO:聽Add聽your聽message聽handler聽code聽here聽and/or聽call聽default
聽聽聽聽SetCaretPos(point);
聽聽聽聽CView::OnLButtonDown(nFlags,聽point);
}
]]>
int
聽CTest27View::OnCreate(LPCREATESTRUCT聽lpCreateStruct)聽
{
聽聽聽聽
if
聽(CView::OnCreate(lpCreateStruct)聽
==
聽
-
1
)
聽聽聽聽聽聽聽聽
return
聽
-
1
;
聽聽聽聽
聽聽聽聽
//
聽TODO:聽Add聽your聽specialized聽creation聽code聽here
聽聽聽聽CClientDC聽dc(
this
);
聽聽聽聽TEXTMETRIC聽tm;聽聽聽聽
//
TEXTMETRIC緇撴瀯鏄劇ず褰撳墠瀛椾綋鐨勪俊鎭?/span>
聽聽聽聽dc.GetTextMetrics(
&
tm);聽聽聽聽聽聽聽聽
//
寰楀埌瀛椾綋淇℃伅瀛樺叆tm
聽聽聽聽CreateSolidCaret((tm.tmAveCharWidth
+
20
)
/
8
,tm.tmHeight
*
20
);聽聽
//
鍒涘緩鎻掑叆絎?/span>
聽聽聽聽ShowCaret();聽聽聽聽
//
鏄劇ず鎻掑叆絎?/span>
聽聽聽聽
return
聽
0
;
}
void
聽CTest27View::OnLButtonDown(UINT聽nFlags,聽CPoint聽point)聽
{
聽聽聽聽
//
聽TODO:聽Add聽your聽message聽handler聽code聽here聽and/or聽call聽default聽聽聽聽
聽聽聽聽SetCaretPos(point);聽聽聽聽聽聽聽聽
//
鏀瑰彉鎻掑叆絎︾殑浣嶇疆,point鏄綋鍓嶅鎴峰尯鐨勪綅緗?/span>
聽聽聽聽CView::OnLButtonDown(nFlags,聽point);
}
鏈▼搴忓姛鑳芥槸錛氬疄鐜伴紶鏍囩偣鍑誨鏄劇ず涓涓彃鍏ョ銆傘傘傘?img src ="http://www.shnenglu.com/deercoder/aggbug/108165.html" width = "1" height = "1" />
]]>
鍒涘緩鏃朵慨鏀癸紝鍗沖湪CMainFrame鐨勬垚鍛樺嚱鏁癙reCreateWindow鍑芥暟鏉ュ疄鐜般?br>
1.鍒涘緩鏃朵慨鏀圭▼搴忕殑澶栬錛氫慨鏀瑰垵濮嬪寲鐨勭獥鍙eぇ灝忕瓑絳夊睘鎬с?br>
鍦–MainFrame鍑芥暟涓紝璁劇疆cs鐨勫悇涓睘鎬э紝cs鏄竴涓粨鏋勪綋錛岃緗甤x錛宑y琛ㄧず瀹冪殑澶у皬錛岃緗叾浠栫殑琛ㄧず鍙﹀鐨勫ぇ灝忋?br>
娉細鍘熶功鐢變竴涓敊璇紝鍙槸錛屽彲浠ラ氳繃閰嶅鐨勬簮浠g爜鏉ョ湅鍑恒?br>
灝辨槸涔︿笂鏄細 cs.style |= ~FWS_ADDTOTITLE;
鑰屼唬鐮佷笂鏄細 cs.style = WS_OVERLAPPEDWINDOW;
濡傛灉鎸夌収涔︿笂鐨勪唬鐮侊紝灝變細鍋囨錛屾瘡嬈″惎鍔ㄩ兘澶卞幓鍝嶅簲錛岃屼笖鏍囬娌℃湁鍚嶇О銆?br>
濡傛灉鏄唬鐮佷笂鐨?nbsp; cs.style = WS_OVERLAPPEDWINDOW;鍒欎笉浼氬嚭鐜拌繖涓粨鏋溿?br>
淇敼鐨勬簮浠g爜濡備笅錛?br>
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.cx = 500;
cs.cy = 300;
// cs.style = WS_OVERLAPPEDWINDOW;
cs.style |= ~FWS_ADDTOTITLE;
cs.lpszName = "Helloworld";
return TRUE;
}
娉細鍙互閫氳繃淇敼CMainFrame鐨勬垚鍛樺嚱鏁癙reCreateWindow鍑芥暟鐨凜REATESTRUCT緇撴瀯浣撴潵涓у寲紿楀彛鐨勫瑙傘傚湪鍗曟枃妗e簲鐢ㄧ▼搴忎腑錛岄粯璁ょ殑紿楀彛綾誨瀷鏄疻S_OVERLAPPEDWINDOW鍜孎WS_ADDTOTILE錛屽叾涓紝FWS_ADDTOTITLE鏄竴涓狹FC綾誨瀷錛屽皢鏂囨。鐨勬爣棰樻坊鍔犲埌紿楀彛鏍囬銆傛墍浠ヨ璁劇疆紿楀彛鏍囬鐨勫唴瀹癸紝蹇呴』灝咶WS_ADDTOTITLE灞炴у幓鎺夈?br>
浣嗘槸錛屽皢灞炴ц緗敼涓?/span>&涔嬪悗錛屽氨涓嶄細鍑虹幇閭d釜闂浜嗐傛簡…………
鐗瑰埆娉ㄦ剰鐨勬槸錛屽鏋滀笉璁插睘鎬ц緗負~FWS_ADDTOTITLE錛屽氨涓嶄細鏇存敼鏍囬鐨勫悕縐幫紝鍗充嬌璁劇疆浜唋pszName涔熶笉琛?br>
2.鍒涘緩鍚庤緗殑璇濓紝闇瑕佸湪CMainFrame鍜孷iew涓殑OnCreate鍑芥暟涓紝瀹炵幇SetClassLong鍑芥暟鐨勪嬌鐢ㄣ?br>
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
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);
SetClassLong(m_hWnd,GCL_HICON,(LONG)LoadIcon(NULL,IDI_ERROR)); //鏇存敼紿楀彛鍥炬爣錛屽悓鍓嶉潰鐨凙fxRegisterWndClass鍑芥暟
return 0;
}
int CTest14View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
SetClassLong(m_hWnd,GCL_HBRBACKGROUND,(LONG)GetStockObject(GRAY_BRUSH));
SetClassLong(m_hWnd,GCL_HCURSOR,(LONG)LoadCursor(NULL,IDC_HELP));
return 0;
}
]]>void聽CMainFrame::OnNewTool()聽
{
聽聽聽聽//聽TODO:聽Add聽your聽command聽handler聽code聽here
聽聽聽聽static聽CRect聽rectNew;
聽聽聽聽if(m_newToolBar.IsWindowVisible())
聽聽聽聽
{
聽聽聽聽聽聽聽聽m_newToolBar.ShowWindow(SW_HIDE);
聽聽聽聽}
聽聽聽聽else
聽聽聽聽
{
聽聽聽聽聽聽聽聽m_newToolBar.ShowWindow(SW_SHOW);
聽聽聽聽}
聽聽聽聽RecalcLayout();聽聽//蹇呴』閲嶆柊璁劇疆紿楀彛甯冨眬錛屽惁鍒欏嵆浣垮伐鍏鋒爮鏄劇ず錛岀獥鍙e瑙備篃浼氬彉鍖?/span>
聽聽聽聽DockControlBar(&m_newToolBar);
}
void聽CMainFrame::OnUpdateNewTool(CCmdUI*聽pCmdUI)聽
{
聽聽聽聽//聽TODO:聽Add聽your聽command聽update聽UI聽handler聽code聽here
聽聽聽聽pCmdUI->SetCheck(m_newToolBar.IsWindowVisible());
}
娉ㄨ錛氬湪涓婇潰鐨勬樉紺哄拰闅愯棌涓紝蹇呴』鐢ㄥ埌:RecalLayout()鏉ラ噸鏂拌緗紝鍚﹀垯鐨勮瘽鍗充嬌闅愯棌浜嗭紝浣嗘槸榪樻槸浼氭樉紺哄嚭鏉ュ伐鍏鋒爮鎵鍦ㄧ殑絀洪棿錛岃屼笉浼氬皢榪欓儴鍒嗘姽闄ゃ傝皟鐢ㄤ簡涔嬪悗錛屼竴鏃﹂殣钘忎簡錛岄偅涔堟閮ㄥ垎娌℃湁鐢ㄥ錛屽氨浼氶殣钘忎簡錛屽疄鐜頒簡鍔熻兘銆?img src ="http://www.shnenglu.com/deercoder/aggbug/107969.html" width = "1" height = "1" />
]]>