版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> MFC課程設(shè)計(jì)說(shuō)明書(shū)</p><p> 設(shè)計(jì)題目:綜合調(diào)色板 </p><p> 所屬系部: 計(jì)算機(jī)工程系 </p><p> 專(zhuān) 業(yè): 軟件工程 </p><p> 學(xué) 號(hào): </p><p> 姓 名:
2、 </p><p> 設(shè)計(jì)日期: </p><p><b> 設(shè)計(jì)描述</b></p><p> 通過(guò)綜合這學(xué)期的知識(shí),最終做了個(gè)調(diào)色板。首先,此調(diào)色板可以通過(guò)控制紅,綠,藍(lán)三個(gè)滑塊控件來(lái)使列表框的顏色隨之變化;也可以通過(guò)點(diǎn)擊顏色板來(lái)自己選取想要顯示的顏色。其次,當(dāng)關(guān)閉調(diào)色板時(shí)有對(duì)話框提示,既
3、可以最小化到托盤(pán),也可以直接退出程序,同時(shí)可以通過(guò)操作注冊(cè)表來(lái)操作。最后,此調(diào)色板應(yīng)用了皮膚設(shè)置,使之看起來(lái)更美化!</p><p><b> 2.設(shè)計(jì)分析</b></p><p><b> 主要函數(shù)及聲明:</b></p><p> void WriteRegistry();</p><p&g
4、t; void ReadRegistry();</p><p> void Inquiry();</p><p> BOOL ModifyTray(HWND hwnd,UINT uID);</p><p> BOOL RemoveTray(HWND hwnd);</p><p> BOOL AddTray(HWND hWnd,LPS
5、TR lpszTip);</p><p> void OnTimer(UINT nIDEvent);</p><p> void OnRegistry();</p><p> CColorDlg(CWnd* pParent = NULL);</p><p> CRect ListBoxRect;//列表框區(qū)域</p>&
6、lt;p> Int ExitInstance()</p><p> protected成員變量:</p><p> HINSTANCE hInstance;</p><p> HICON m_hIcon;</p><p> int nRadio,nCheck;</p><p> CString s
7、tr;</p><p> 其他新添加的函數(shù)消息:</p><p> void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);</p><p> void OnAbout();</p><p> void OnExit();</p><p>
8、 void OnOpen();</p><p> void OnClose();</p><p> void OnDestroy();</p><p> 其中,有一個(gè)函數(shù)比較特殊,需手動(dòng)添加,在ColorDlg.h中添加</p><p> void OnTrayNotify(WPARAM wParam, LPARAM lParam)
9、;</p><p> 在ColorDlg.cpp中AFX_MSG_MAP(CColorDlg)與 AFX_MSG_MAP之間添加ON_MESSAGE(WM_ICON_NOTIFY, OnTrayNotify),最后在ColorDlg.cpp中手動(dòng)添加函數(shù):void CColorDlg::OnTrayNotify(WPARAM wParam, LPARAM lParam)</p><p>
10、 在資源視圖中需要做的工作有:引入兩個(gè)對(duì)話框,分別添加相應(yīng)的控件,并定義其成員變量。紅綠藍(lán)控件ID分別命名為IDC_SCROLLBAR_RED,IDC_SLIDER_GREEN,IDC_SLIDER_BLUE,編輯框命名為IDC_LIST_BOX,清除注冊(cè)信息命名為IDC_REGISTRY。</p><p><b> 對(duì)話框成員變量:</b></p><p>
11、CScrollBarm_scrollRed;</p><p> CSliderCtrlm_sliderGreen;</p><p> CSliderCtrlm_sliderBlue;</p><p> intm_nRedValue;</p><p> intm_nBlue;</p><p> i
12、ntm_nGreen;</p><p> 在資源視圖中引入一個(gè)菜單資源和幾個(gè)ICON資源</p><p><b> 3.運(yùn)行界面</b></p><p><b> 啟動(dòng)界面</b></p><p><b> 藍(lán)色</b></p><p>&l
13、t;b> 調(diào)色對(duì)話框</b></p><p><b> 退出提示</b></p><p> 托盤(pán)圖標(biāo)菜單 </p><p><b> 托盤(pán)圖標(biāo)變化</b></p><p><b> 關(guān)于</b></p><
14、;p><b> 4.源代碼</b></p><p> // ColorDlg.cpp : implementation file</p><p><b> //</b></p><p> #include "stdafx.h"</p><p> #include
15、"Color.h"</p><p> #include "ColorDlg.h"</p><p> #ifdef _DEBUG</p><p> #define new DEBUG_NEW</p><p> #undef THIS_FILE</p><p> stati
16、c char THIS_FILE[] = __FILE__;</p><p><b> #endif</b></p><p> /////////////////////////////////////////////////////////////////////////////</p><p> // CAboutDlg dialog
17、 used for App About</p><p> class CAboutDlg : public CDialog</p><p><b> {</b></p><p><b> public:</b></p><p> CAboutDlg();</p><p&g
18、t; // Dialog Data</p><p> //{{AFX_DATA(CAboutDlg)</p><p> enum { IDD = IDD_ABOUTBOX };</p><p> //}}AFX_DATA</p><p> // ClassWizard generated virtual function overr
19、ides</p><p> //{{AFX_VIRTUAL(CAboutDlg)</p><p> protected:</p><p> virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support</p><p> //}}AFX_VIRTUAL<
20、;/p><p> // Implementation</p><p> protected:</p><p> //{{AFX_MSG(CAboutDlg)</p><p> //}}AFX_MSG</p><p> DECLARE_MESSAGE_MAP()</p><p><b&
21、gt; };</b></p><p> CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)</p><p><b> {</b></p><p> //{{AFX_DATA_INIT(CAboutDlg)</p><p> //}}AFX_DATA_IN
22、IT</p><p><b> }</b></p><p> void CAboutDlg::DoDataExchange(CDataExchange* pDX)</p><p><b> {</b></p><p> CDialog::DoDataExchange(pDX);</p&
23、gt;<p> //{{AFX_DATA_MAP(CAboutDlg)</p><p> //}}AFX_DATA_MAP</p><p><b> }</b></p><p> BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)</p><p> //{{AFX_MSG_
24、MAP(CAboutDlg)</p><p> //}}AFX_MSG_MAP</p><p> END_MESSAGE_MAP()</p><p> /////////////////////////////////////////////////////////////////////////////</p><p> // CC
25、olorDlg dialog</p><p> CColorDlg::CColorDlg(CWnd* pParent /*=NULL*/)</p><p> : CDialog(CColorDlg::IDD, pParent)</p><p><b> {</b></p><p> //{{AFX_DATA_IN
26、IT(CColorDlg)</p><p> m_nRedValue = 0;</p><p> m_nBlue = 0;</p><p> m_nGreen = 0;</p><p> //}}AFX_DATA_INIT</p><p> // Note that LoadIcon does not req
27、uire a subsequent DestroyIcon in Win32</p><p> m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);</p><p><b> }</b></p><p> void CColorDlg::DoDataExchange(CDataExchang
28、e* pDX)</p><p><b> {</b></p><p> CDialog::DoDataExchange(pDX);</p><p> //{{AFX_DATA_MAP(CColorDlg)</p><p> DDX_Control(pDX, IDC_SCROLLBAR_RED, m_scrollR
29、ed);</p><p> DDX_Control(pDX, IDC_SLIDER_GREEN, m_sliderGreen);</p><p> DDX_Control(pDX, IDC_SLIDER_BLUE, m_sliderBlue);</p><p> DDX_Scroll(pDX, IDC_SCROLLBAR_RED, m_nRedValue);&
30、lt;/p><p> DDX_Slider(pDX, IDC_SLIDER_BLUE, m_nBlue);</p><p> DDX_Slider(pDX, IDC_SLIDER_GREEN, m_nGreen);</p><p> //}}AFX_DATA_MAP</p><p><b> }</b></p&
31、gt;<p> BEGIN_MESSAGE_MAP(CColorDlg, CDialog)</p><p> //{{AFX_MSG_MAP(CColorDlg)</p><p> ON_WM_SYSCOMMAND()</p><p> ON_WM_PAINT()</p><p> ON_WM_ERASEBKGND()
32、</p><p> ON_WM_CTLCOLOR()</p><p> ON_BN_CLICKED(IDD_ABOUTBOX, OnAboutbox)</p><p> ON_WM_HSCROLL()</p><p> ON_BN_CLICKED(IDC_BUTTON_COLOR, OnButtonColor)</p>
33、<p> ON_COMMAND(ID_ABOUT, OnAbout)</p><p> ON_COMMAND(ID_EXIT, OnExit)</p><p> ON_COMMAND(ID_OPEN, OnOpen)</p><p> ON_WM_CLOSE()</p><p> ON_WM_TIMER()</p&g
34、t;<p> ON_WM_DESTROY()</p><p> ON_MESSAGE(WM_ICON_NOTIFY, OnTrayNotify)//by me</p><p> ON_BN_CLICKED(IDC_REGISTRY, OnRegistry)</p><p> //}}AFX_MSG_MAP</p><p>
35、; END_MESSAGE_MAP()</p><p> /////////////////////////////////////////////////////////////////////////////</p><p> // CColorDlg message handlers</p><p> BOOL CColorDlg::OnInitDia
36、log()</p><p><b> {</b></p><p> CDialog::OnInitDialog();</p><p> // Add "About..." menu item to system menu.</p><p> // IDM_ABOUTBOX must be in
37、 the system command range.</p><p> ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);</p><p> ASSERT(IDM_ABOUTBOX < 0xF000);</p><p> CMenu* pSysMenu = GetSystemMenu(FALSE);&
38、lt;/p><p> if (pSysMenu != NULL)</p><p><b> {</b></p><p> CString strAboutMenu;</p><p> strAboutMenu.LoadString(IDS_ABOUTBOX);</p><p> if (!s
39、trAboutMenu.IsEmpty())</p><p><b> {</b></p><p> pSysMenu->AppendMenu(MF_SEPARATOR);</p><p> pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);</p&g
40、t;<p><b> }</b></p><p><b> }</b></p><p> // Set the icon for this dialog. The framework does this automatically</p><p> // when the application&
41、#39;s main window is not a dialog</p><p> SetIcon(m_hIcon, TRUE);// Set big icon</p><p> SetIcon(m_hIcon, FALSE);// Set small icon</p><p> // TODO: Add extra initialization
42、here</p><p> m_scrollRed.SetScrollRange(0,255);</p><p> m_sliderBlue.SetRange(0,255);</p><p> m_sliderGreen.SetRange(0,255);</p><p> UpdateData(FALSE);</p>&
43、lt;p> m_scrollRed.SetScrollPos(m_nRedValue);</p><p> m_sliderBlue.SetPos(m_nBlue);</p><p> m_sliderGreen.SetPos(m_nGreen);</p><p> CWnd *pWnd=GetDlgItem(IDC_LIST_BOX);//選定列表框
44、</p><p><b> if(pWnd)</b></p><p><b> {</b></p><p> pWnd->GetClientRect(&ListBoxRect);//獲得其區(qū)域</p><p><b> }</b></p>&
45、lt;p> SetWindowText("RGB演示[CC版權(quán)所有]");</p><p> return TRUE; // return TRUE unless you set the f ocus to a control</p><p><b> }</b></p><p> void CColorD
46、lg::OnSysCommand(UINT nID, LPARAM lParam)</p><p><b> {</b></p><p> if ((nID & 0xFFF0) == IDM_ABOUTBOX)</p><p><b> {</b></p><p> CAboutDl
47、g dlgAbout;</p><p> dlgAbout.DoModal();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> CDialog::OnS
48、ysCommand(nID, lParam);</p><p><b> }</b></p><p><b> }</b></p><p> void CColorDlg::OnPaint() </p><p><b> {</b></p><p&g
49、t; if (IsIconic())</p><p><b> {</b></p><p> CPaintDC dc(this); // device context for painting</p><p> SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);<
50、;/p><p> // Center icon in client rectangle</p><p> int cxIcon = GetSystemMetrics(SM_CXICON);</p><p> int cyIcon = GetSystemMetrics(SM_CYICON);</p><p> CRect rect;<
51、/p><p> GetClientRect(&rect);</p><p> int x = (rect.Width() - cxIcon + 1) / 2;</p><p> int y = (rect.Height() - cyIcon + 1) / 2;</p><p> // Draw the icon</p>
52、<p> dc.DrawIcon(x, y, m_hIcon);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> CDialog::OnPaint();</p
53、><p><b> }</b></p><p><b> }</b></p><p> // The system calls this to obtain the cursor to display while the user drags</p><p> // the minimized
54、 window.</p><p> void CColorDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) </p><p><b> {</b></p><p> // TODO: Add your message handler code here and/
55、or call default</p><p> int nID=pScrollBar->GetDlgCtrlID();//獲取對(duì)話框的ID</p><p> if(nID==IDC_SCROLLBAR_RED)</p><p> {//若是滾動(dòng)條產(chǎn)生水平滾動(dòng)消息</p><p> switch(nSBCode)</p&g
56、t;<p><b> {</b></p><p> case SB_LINELEFT: m_nRedValue--;</p><p><b> break;</b></p><p> case SB_LINERIGHT: m_nRedValue++;</p><p><
57、b> break;</b></p><p> case SB_PAGELEFT: m_nRedValue-=10;</p><p><b> break;</b></p><p> case SB_PAGERIGHT: m_nRedValue+=10;</p><p><b> b
58、reak;</b></p><p> case SB_THUMBTRACK: m_nRedValue=nPos;</p><p><b> break;</b></p><p><b> }</b></p><p> if(m_nRedValue<0)</p>
59、<p> m_nRedValue=0;</p><p> if(m_nRedValue>255)</p><p> m_nRedValue=255;</p><p> m_scrollRed.SetScrollPos(m_nRedValue);</p><p><b> }</b></p
60、><p> CWnd * pWnd=GetDlgItem(IDC_LIST_BOX);//獲得列表對(duì)象</p><p> CDC *pdc=pWnd->GetDC();//獲得列表框DC</p><p> CDC cacheDC;</p><p> CBrush brush(RGB(m_nRedValue,m_nBlue,m_nGr
61、een));</p><p> cacheDC.CreateCompatibleDC(pdc);</p><p> if(m_pCacheBitmap==NULL)</p><p><b> {</b></p><p> m_pCacheBitmap=new CBitmap;</p><p&g
62、t; m_pCacheBitmap->CreateCompatibleBitmap(pdc,ListBoxRect.Width(),ListBoxRect.Height());</p><p><b> }</b></p><p> CBitmap *pOldBitmap=cacheDC.SelectObject(m_pCacheBitmap);//將ca
63、cheDC和m_pCacheBitmap聯(lián)系起來(lái)</p><p> cacheDC.FillRect(&ListBoxRect,&brush);//填充區(qū)域</p><p> pdc->BitBlt(ListBoxRect.left,ListBoxRect.top,ListBoxRect.Width(),ListBoxRect.Height(),&cach
64、eDC,0,0,SRCCOPY);</p><p> cacheDC.SelectObject(pOldBitmap);</p><p> cacheDC.DeleteDC();</p><p> CDialog::OnHScroll(nSBCode, nPos, pScrollBar);</p><p><b> }<
65、;/b></p><p> HBRUSH CColorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) </p><p><b> {</b></p><p> HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);&l
66、t;/p><p> // TODO: Change any attributes of the DC here</p><p> UpdateData(TRUE);</p><p> COLORREF color=RGB(m_nRedValue,m_nGreen,m_nBlue);</p><p> if (nCtlColor==CTLC
67、OLOR_LISTBOX) </p><p><b> {</b></p><p> m_brush.Detach();</p><p> HBRUSH m_Brush=CreateSolidBrush(color);</p><p> pDC->SetBkColor(color);</p>
68、<p> return(HBRUSH)m_Brush; </p><p><b> }</b></p><p> return hbr;</p><p><b> }</b></p><p> void CColorDlg::OnAboutbox() </p>&l
69、t;p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> CAboutDlg dlg;</p><p> dlg.DoModal();</p><p><b> }</
70、b></p><p> void CColorDlg::OnButtonColor() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> BYTE r,g,b;//接收
71、顏色分量</p><p> int m_nRedValue,m_nBlue,m_nGreen;//標(biāo)記滾動(dòng)條位置</p><p> COLORREF color;//接收顏色</p><p> CColorDialog dlg;//顏色對(duì)話框</p><p> if(dlg.DoModal()==IDOK)</p>&l
72、t;p><b> {</b></p><p> color=dlg.GetColor();//獲得顏色,賦給c</p><p> r=GetRValue(color);//獲得R</p><p> g=GetGValue(color);//獲得G</p><p> b=GetBValue(color);/
73、/獲得B</p><p> m_nRedValue=r;</p><p> m_nBlue=b;</p><p> m_nGreen=g;//傳給整形變量,以便設(shè)定滾動(dòng)條位置</p><p> m_scrollRed.SetScrollPos(m_nRedValue);</p><p> m_sliderGr
74、een.SetPos(m_nGreen);</p><p> m_sliderBlue.SetPos(m_nBlue);//設(shè)定滾動(dòng)條位置</p><p><b> }</b></p><p> Invalidate();</p><p><b> }</b></p><
75、p> BOOL CColorDlg::AddTray(HWND hWnd, LPSTR lpszTip)</p><p><b> {</b></p><p> NOTIFYICONDATA tnid;</p><p> tnid.cbSize=sizeof(NOTIFYICONDATA);</p><p>
76、; tnid.hWnd=hWnd;</p><p> tnid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;</p><p> tnid.uCallbackMessage=WM_ICON_NOTIFY;</p><p> tnid.hIcon=AfxGetApp()->LoadIcon(IDI_ICON1);</p&g
77、t;<p> strcpy(tnid.szTip,lpszTip);</p><p> return Shell_NotifyIcon(NIM_ADD,&tnid);</p><p><b> }</b></p><p> BOOL CColorDlg::RemoveTray(HWND hwnd)</p>
78、;<p><b> {</b></p><p> NOTIFYICONDATA tnid;</p><p> tnid.cbSize=sizeof(NOTIFYICONDATA);</p><p> tnid.hWnd=hwnd;</p><p> return Shell_NotifyIcon(
79、NIM_DELETE,&tnid);</p><p><b> }</b></p><p> BOOL CColorDlg::ModifyTray(HWND hwnd, UINT uID)</p><p><b> {</b></p><p> NOTIFYICONDATA tnid
80、;</p><p> tnid.cbSize=sizeof(NOTIFYICONDATA);</p><p> tnid.hWnd=hwnd;</p><p> tnid.uFlags=NIF_ICON; </p><p> tnid.hIcon=AfxGetApp()->LoadIcon(uID); </p>&
81、lt;p> return Shell_NotifyIcon(NIM_MODIFY,&tnid);</p><p><b> }</b></p><p> void CColorDlg::OnTrayNotify(WPARAM wParam, LPARAM lParam)</p><p><b> {</b&
82、gt;</p><p> if(WM_RBUTTONDOWN==lParam)</p><p><b> {</b></p><p> CMenu menu;</p><p> menu.LoadMenu(IDR_MENU1);</p><p> CPoint point;</p&
83、gt;<p> GetCursorPos(&point);//得到鼠標(biāo)位置</p><p> CMenu *popup=menu.GetSubMenu(0);</p><p> popup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this);</p>
84、<p><b> return;</b></p><p><b> }</b></p><p> if(WM_LBUTTONDOWN==lParam)</p><p><b> {</b></p><p> ShowWindow(SW_SHOWNORMA
85、L); </p><p> SetForegroundWindow();</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> void
86、CColorDlg::OnAbout() </p><p><b> {</b></p><p> // TODO: Add your command handler code here</p><p> MessageBox("開(kāi)發(fā)者:程程\n2011年11月","關(guān)于",MB_ICONEXCLA
87、MATION |MB_OK);</p><p><b> }</b></p><p> void CColorDlg::OnExit() </p><p><b> {</b></p><p> // TODO: Add your command handler code here</
88、p><p> PostQuitMessage(0);</p><p><b> }</b></p><p> void CColorDlg::OnOpen() </p><p><b> {</b></p><p> // TODO: Add your comman
89、d handler code here</p><p> ShowWindow(SW_SHOWNORMAL); </p><p> SetForegroundWindow();</p><p><b> }</b></p><p> void CColorDlg::OnClose() </p>
90、<p><b> {</b></p><p> // TODO: Add your message handler code here and/or call default</p><p> HKEY hKey;</p><p> if(ERROR_SUCCESS==RegOpenKeyEx(HKEY_LOCAL_MAC
91、HINE,</p><p> "SoftWare\\http://www.klingde.com\\Tray",0,KEY_READ,&hKey))</p><p><b> {</b></p><p> ReadRegistry();</p><p> if(1==nCheck)&l
92、t;/p><p><b> {</b></p><p> if(0==nRadio)</p><p><b> {</b></p><p> PostQuitMessage(0);</p><p><b> }</b></p>&l
93、t;p><b> else</b></p><p><b> {</b></p><p> AddTray(m_hWnd,"RGB演示");</p><p> ShowWindow(SW_HIDE);</p><p> SetTimer(1,500,NULL);&
94、lt;/p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> Inquiry();</p>
95、<p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> Inquiry();</p><p>
96、;<b> }</b></p><p> RegCloseKey(hKey);</p><p> //CDialog::OnClose();</p><p><b> }</b></p><p> void CColorDlg::OnTimer(UINT nIDEvent) </p&
97、gt;<p><b> {</b></p><p> // TODO: Add your message handler code here and/or call default</p><p> static UINT nIDs[]={IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4};</p>&l
98、t;p> static int nIndex=1;</p><p> ModifyTray(m_hWnd,nIDs[nIndex]);</p><p> nIndex=++nIndex%4;</p><p> CDialog::OnTimer(nIDEvent);</p><p><b> }</b>&l
99、t;/p><p> void CColorDlg::Inquiry()</p><p><b> {</b></p><p> CInquiry inq;</p><p> inq.DoModal();//打開(kāi)詢(xún)問(wèn)對(duì)話框</p><p> nRadio=inq.m_n;</p>
100、<p> if(inq.m_chk)//是否選擇不再提示選框</p><p> nCheck=1;//標(biāo)志為1</p><p><b> else</b></p><p> nCheck=0;//標(biāo)志為0</p><p> if(0==nRadio)//選擇直接退出</p><
101、p><b> {</b></p><p> PostQuitMessage(0);</p><p><b> }</b></p><p> else//選擇返回托盤(pán)</p><p><b> {</b></p><p> AddTr
102、ay(m_hWnd,"RGB演示");</p><p> ShowWindow(SW_HIDE);//隱藏主窗口</p><p> SetTimer(1,500,NULL);</p><p><b> }</b></p><p> WriteRegistry();</p><
103、;p><b> }</b></p><p> void CColorDlg::OnDestroy() </p><p><b> {</b></p><p> CDialog::OnDestroy();</p><p> // TODO: Add your message handl
104、er code here</p><p> KillTimer(1);</p><p> RemoveTray(m_hWnd);</p><p><b> }</b></p><p> void CColorDlg::ReadRegistry()</p><p><b> {&
105、lt;/b></p><p> HKEY hKey;</p><p> RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SoftWare\\http://www.klingde.com\\Tray",0,KEY_READ,&hKey);</p><p> DWORD dwValue;//變量的地址</p
106、><p> RegQueryValueEx(hKey,"nCheck",0,NULL,(LPBYTE)&nCheck,&dwValue);</p><p> RegQueryValueEx(hKey,"nRadio",0,NULL,(LPBYTE)&nRadio,&dwValue);</p><p&
107、gt; RegCloseKey(hKey);</p><p><b> }</b></p><p> void CColorDlg::WriteRegistry()</p><p><b> {</b></p><p> HKEY hKey;</p><p> D
108、WORD nbf=0; </p><p> CString str("kld");</p><p> RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SoftWare\\http://www.rhongxing.com\\Tray",0,NULL,REG_OPTION_NON_VOLATILE,KEY_READ|KEY_WR
109、ITE,NULL,&hKey,&nbf);</p><p> RegSetValueEx(hKey,"nRadio",0,REG_DWORD,(CONST BYTE*)&nRadio,4);</p><p> RegSetValueEx(hKey,"nCheck",0,REG_DWORD,(CONST BYTE*)&
110、;nCheck,4);</p><p> RegCloseKey(hKey);</p><p><b> }</b></p><p> void CColorDlg::OnRegistry() </p><p><b> {</b></p><p> // TODO
111、: Add your control notification handler code here</p><p> if(ERROR_SUCCESS!=RegDeleteKey(HKEY_LOCAL_MACHINE,"SoftWare\\http://www. rhongxing.com\\Tray"))</p><p> MessageBox("沒(méi)有添
112、加到注冊(cè)表");</p><p><b> else</b></p><p> MessageBox("刪除了注冊(cè)表中的鍵");</p><p><b> }</b></p><p> 關(guān)于界面皮膚設(shè)置,在ColorDlg.cpp中的BOOL CColorApp
113、::InitInstance()</p><p> 添加skinppLoadSkin(_T("spring.ssk"));,并且添加函數(shù)ExitInstance(),編輯代碼</p><p> int CColorApp::ExitInstance() </p><p><b> {</b></p>&l
114、t;p> // TODO: Add your specialized code here and/or call the base class</p><p> skinppExitSkin();</p><p> return CWinApp::ExitInstance();</p><p><b> }</b></p&g
115、t;<p><b> 4.設(shè)計(jì)總結(jié)</b></p><p> 通過(guò)此次調(diào)色板的編程,雖實(shí)現(xiàn)了一些基本的功能,但還是有一些瑕疵存在,細(xì)心的讀者可能發(fā)現(xiàn)綠色和藍(lán)色的滑動(dòng)條的初始顏色為黑色,這是因?yàn)樵瓉?lái)設(shè)置的背景為位圖,其控件顏色與背景顏色發(fā)生干擾,再者,還有一個(gè)比較嚴(yán)肅的問(wèn)題那就是起初我設(shè)置的背景為位圖,但最后又改為了皮膚窗體,所以讀者看起來(lái)會(huì)比較別扭??偠灾ㄟ^(guò)做這個(gè)小程
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- bmp位圖調(diào)色板
- 喀納斯秋天的調(diào)色板
- 調(diào)色板圖像LSB信息隱藏檢測(cè)算法研究.pdf
- 數(shù)字調(diào)色板圖像中的安全隱寫(xiě)研究.pdf
- mfc課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 調(diào)色板圖像多特征隱寫(xiě)分析技術(shù)研究.pdf
- mfc計(jì)算器課程設(shè)計(jì)報(bào)告
- mfc程序設(shè)計(jì)課程設(shè)計(jì)---考勤系統(tǒng)
- 可逆數(shù)據(jù)隱藏及調(diào)色板圖像隱寫(xiě)技術(shù)研究.pdf
- 課程設(shè)計(jì)--mfc家庭理財(cái)管理系統(tǒng)
- mfc課程設(shè)計(jì)報(bào)告-貪食蛇游戲
- mfc課程設(shè)計(jì)-調(diào)整對(duì)話框背景顏色
- os課程設(shè)計(jì)---模擬內(nèi)存分配算法mfc實(shí)現(xiàn)
- mfc聊天軟件課程設(shè)計(jì)---網(wǎng)絡(luò)聊天程序設(shè)計(jì)
- mfc課程設(shè)計(jì)報(bào)告---聊天室程序設(shè)計(jì)
- mfc課程設(shè)計(jì)報(bào)告—模擬計(jì)算器
- vc++課程設(shè)計(jì)--基于mfc的模擬時(shí)鐘
- mfc課程設(shè)計(jì)報(bào)告—漢諾塔演示系統(tǒng)
- mfc聊天軟件課程設(shè)計(jì)---網(wǎng)絡(luò)聊天程序設(shè)計(jì)
- c++_mfc計(jì)算器編程課程設(shè)計(jì)--mfc編程科學(xué)計(jì)算器
評(píng)論
0/150
提交評(píng)論