mfc課程設(shè)計(jì)---綜合調(diào)色板_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論