由于這個博客僅限于c++方面。目前進(jìn)行我的博客轉(zhuǎn)移到csdn
posted @ 2013-05-07 16:53 盛勝 閱讀(377) | 評論 (0) | 編輯 收藏
http://blog.csdn.net/lanshengsheng2012
由于這個博客僅限于c++方面。目前進(jìn)行我的博客轉(zhuǎn)移到csdn posted @ 2013-05-07 16:53 盛勝 閱讀(377) | 評論 (0) | 編輯 收藏 2010-12-15 11:09
posted @ 2013-04-07 14:36 盛勝 閱讀(416) | 評論 (0) | 編輯 收藏 vc 如何建動態(tài)按鈕
在類的定義中,定義如下變量 [c-sharp] view plaincopy
那么在類的成員函數(shù)中就可以使用了如下來創(chuàng)建按鈕。 [c-sharp] view plaincopy
注,創(chuàng)建第二次的時候會出錯。所以要用。 [c-sharp] view plaincopy
來釋放再進(jìn)行創(chuàng)建。 借由這個動態(tài)創(chuàng)建,弄清了一些MFC的構(gòu)架,MFC是基于所有的類而得出的成果,一個類派生與另一個基類,從CWnd到CDialog就是一個很好的例子。CDialog派生與CWnd。 如果我要創(chuàng)建一個按鈕,就必須用CDialog定義一個新的變量,這個變量就成了一個按鈕,我就可以利用這個按鈕類進(jìn)行 各類操作,例如定義其的大小,風(fēng)格。
皆由此可見,所有的窗口都是一個類定義來的。無論是按鈕,標(biāo)簽,ComBox,List等等,都可以使用這個方法進(jìn)行創(chuàng)建。 在編輯代碼方面,VC與VB就有了,對于用戶來說,就有了本質(zhì)上的差別,VB的或許更加方便,而VC需要處理的細(xì)節(jié)太多了。 posted @ 2013-04-07 14:33 盛勝 閱讀(379) | 評論 (0) | 編輯 收藏 //m_pdbado->GetFieldValue(_T("AccountCreateDate"),str); m_pdbado->GetFieldValue(_T("AccountCreateDate"),coledatetime); str = coledatetime.Format("%Y-%m-%d %H:%M:%S"); if (str.size()>64) { m_strError = "超過長度"; //m_pdbado->CloseRecordset(); return false; } strcpy_s(user_info.AccountCreateDate,64,str.c_str()); 要用COleDateTime coledatetime; 讀取,再格式化 posted @ 2013-03-30 12:10 盛勝 閱讀(208) | 評論 (0) | 編輯 收藏 BOOL C*****::StartMakeing( void ) { unsigned threadID = 0; m_start = true; m_hThread =(HANDLE) _beginthreadex(NULL, 0, MakeMontage, (LPVOID)this, 0, &threadID ); return (m_start != NULL); } unsigned __stdcall C*****::MakeMontage( LPVOID lpParameter ) { if(lpParameter) { C***** *pclient = (CDossierMontage*)lpParameter; pclient->doMake(); } return 0xdead; } void C*****::doMake( ) posted @ 2013-03-30 10:18 盛勝 閱讀(336) | 評論 (0) | 編輯 收藏 OnPain() CPaintDC *pdc=&dc; CRect r; GetClientRect(&r); CBitmap *pBitmap= new CBitmap; BITMAP bm; pBitmap->LoadBitmap(IDB_BG_NEW); pBitmap->GetBitmap(&bm); CDC* pDisplayMemDC = new CDC; pDisplayMemDC->CreateCompatibleDC(pdc); pDisplayMemDC->SelectObject(pBitmap); pdc->StretchBlt(r.left,r.top+30,r.Width(),r.Height()-30,pDisplayMemDC, 0,0,bm.bmWidth,bm.bmHeight,SRCCOPY); pBitmap->DeleteObject(); ReleaseDC(pdc); ReleaseDC(pDisplayMemDC); delete pDisplayMemDC; delete pBitmap; OnCtlColor //修改窗口控件背景顏色 if (nCtlColor == CTLCOLOR_STATIC) { pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(#dedede); pDC->SetBkColor(#383838); hbr = CreateSolidBrush(#383838); } if (nCtlColor == CTLCOLOR_EDIT) { pDC->SetTextColor(#dedede); pDC->SetBkColor(#13344d); hbr = CreateSolidBrush(#13344d); } OnEraseBkgnd CRect windowRect; GetWindowRect(windowRect); ScreenToClient(windowRect); pDC->FillSolidRect(windowRect, #383838); return TRUE; posted @ 2013-03-29 17:30 盛勝 閱讀(449) | 評論 (0) | 編輯 收藏 if (PathFileExists(path)) { CString tempStr; tempStr.Format("shell32.dll,OpenAs_RunDLL %s",path); int isError=(int)ShellExecute(NULL, "open", "rundll32.exe ", tempStr, "", SW_SHOW); if (isError<32) { MessageBox("相應(yīng)文件打開失敗","提示"); } } else { MessageBox("文件路徑有誤!"); } posted @ 2013-03-29 17:26 盛勝 閱讀(273) | 評論 (0) | 編輯 收藏 關(guān)閉 SendMessage(WM_SYSCOMMAND, SC_CLOSE); 最小化 SendMessage(WM_SYSCOMMAND, SC_MINIMIZE); 最大化 SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE); 恢復(fù)原來大小 SendMessage(WM_SYSCOMMAND, SC_RESTORE); 對話框接受拖動 PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y)); B00L PostMessage(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam); hWnd:其窗口程序接收消息的窗口的句柄。可取有特定含義的兩個值: HWND_BROADCAST:消息被寄送到系統(tǒng)的所有頂層窗口,包括無效或不可見的非自身擁有的窗口、 被覆蓋的窗口和彈出式窗口。消息不被寄送到子窗口 NULL:此函數(shù)的操作和調(diào)用參數(shù)dwThread設(shè)置為當(dāng)前線程的標(biāo)識符PostThreadMessage函數(shù)一樣 Msg:指定被寄送的消息。 wParam:指定附加的消息特定的信息。 IParam:指定附加的消息特定的信息。 返回值:如果函數(shù)調(diào)用成功,返回非零值:如果函數(shù)調(diào)用失敗,返回值是零。若想獲得更多的錯誤信息,請調(diào)用GetLastError函數(shù)。 posted @ 2013-03-29 16:58 盛勝 閱讀(470) | 評論 (0) | 編輯 收藏 SELECT COUNT(1) AS RecordNum FROM (SELECT MonitoryPointID FROM casedatarel WHERE 1=1 AND Type = 1 GROUP BY MonitoryPointID)a posted @ 2013-03-26 14:16 盛勝 閱讀(442) | 評論 (0) | 編輯 收藏 在VC中,也常常為一些圖片按鈕添加一些功能提示。
下面講解實現(xiàn)過程: 該功能的實現(xiàn)主要是用CToolTipCtrl類。該類在VC 首先在對話框的頭文件中加入初始化語句:public:下,加入:CToolTipCtrl 然后在初始化對話框函數(shù)中加入: m_Mytip.Create(this); m_Mytip.AddTool( GetDlgItem(IDC_BUTTON), "你想要添加的提示信息" ); //IDC_BUTTON為你要添加提示信息的按鈕的ID m_Mytip.SetDelayTime(200); //設(shè)置延遲 m_Mytip.SetTipTextColor( #0000ff ); //設(shè)置提示文本的顏色 m_Mytip.SetTipBkColor( #ffffff); //設(shè)置提示框的背景顏色 m_Mytip.Activate(TRUE); //設(shè)置是否啟用提示 然后在類向?qū)е刑砑覲reTranslateMessage消息響應(yīng)函數(shù) BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class return CDialog::PreTranslateMessage(pMsg); } 注:如果要為多個按鈕添加功能提示只需在 m_Mytip.AddTool( GetDlgItem(IDC_BUTTON), "你想要添加的提示信息" ); 的下面再加上類似語句,如 m_Mytip.AddTool( GetDlgItem(IDC_BUTTON1), "你想要添加的提示信息1" ); m_Mytip.AddTool( GetDlgItem(IDC_BUTTON2), "你想要添加的提示信息2" ); 。。。。。。。。 例子: 聲明: CToolTipCtrl m_Tip; 初始化: BOOL C***Dlg::OnInitDialog() { 省略部分。。。。。。。。。。 //按鈕浮動提示 m_Tip.Create(this); m_Tip.AddTool(&m_BtnPlay,"播放"); m_Tip.SetDelayTime(100); m_Tip.Activate(TRUE); } 類視圖中重寫: BOOL C****Dlg::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加專用代碼和/或調(diào)用基類 m_Tip.RelayEvent(pMsg); } posted @ 2013-03-25 09:25 盛勝 閱讀(778) | 評論 (0) | 編輯 收藏 |
||||||||||||