視窗編程__小樣本(1)

來源:互聯網
上載者:User

運行之後的介面:

 

 

 

 

 

 

 

 

BOOL CWndExDlg::OnInitDialog()<br />{<br />CDialog::OnInitDialog();<br />// Add "About..." menu item to system menu.<br />// IDM_ABOUTBOX must be in the system command range.<br />ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);<br />ASSERT(IDM_ABOUTBOX < 0xF000);<br />CMenu* pSysMenu = GetSystemMenu(FALSE);<br />if (pSysMenu != NULL)<br />{<br />CString strAboutMenu;<br />strAboutMenu.LoadString(IDS_ABOUTBOX);<br />if (!strAboutMenu.IsEmpty())<br />{<br />pSysMenu->AppendMenu(MF_SEPARATOR);<br />pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);<br />}<br />}<br />// Set the icon for this dialog. The framework does this automatically<br />// when the application's main window is not a dialog<br />SetIcon(m_hIcon, TRUE);// Set big icon<br />SetIcon(m_hIcon, FALSE);// Set small icon</p><p>// TODO: Add extra initialization here</p><p>m_List.InsertColumn(0,_T("視窗類別名"),LVCFMT_LEFT,100);<br />m_List.InsertColumn(1,_T("視窗標題"),LVCFMT_LEFT,100);<br />return TRUE; // return TRUE unless you set the focus to a control<br />}<br />void CWndExDlg::OnSysCommand(UINT nID, LPARAM lParam)<br />{<br />if ((nID & 0xFFF0) == IDM_ABOUTBOX)<br />{<br />CAboutDlg dlgAbout;<br />dlgAbout.DoModal();<br />}<br />else<br />{<br />CDialog::OnSysCommand(nID, lParam);<br />}<br />}<br />// If you add a minimize button to your dialog, you will need the code below<br />// to draw the icon. For MFC applications using the document/view model,<br />// this is automatically done for you by the framework.<br />void CWndExDlg::OnPaint()<br />{<br />if (IsIconic())<br />{<br />CPaintDC dc(this); // device context for painting<br />SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);<br />// Center icon in client rectangle<br />int cxIcon = GetSystemMetrics(SM_CXICON);<br />int cyIcon = GetSystemMetrics(SM_CYICON);<br />CRect rect;<br />GetClientRect(&rect);<br />int x = (rect.Width() - cxIcon + 1) / 2;<br />int y = (rect.Height() - cyIcon + 1) / 2;<br />// Draw the icon<br />dc.DrawIcon(x, y, m_hIcon);<br />}<br />else<br />{<br />CDialog::OnPaint();<br />}<br />}<br />// The system calls this to obtain the cursor to display while the user drags<br />// the minimized window.<br />HCURSOR CWndExDlg::OnQueryDragIcon()<br />{<br />return (HCURSOR) m_hIcon;<br />}<br />void CWndExDlg::OnBtnMax()<br />{<br />//已最大化的視窗<br />SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0);</p><p>}<br />void CWndExDlg::OnBtnMin()<br />{<br />//最小化<br />SendMessage(WM_COMMAND,SC_MINIMIZE,0);</p><p>}<br />void CWndExDlg::OnBtnRebuild()<br />{<br />//恢複視窗<br />SendMessage(WM_SYSCOMMAND,SC_RESTORE,0);</p><p>}<br />void CWndExDlg::OnBtnSwp()<br />{<br />//設定視窗的大小和位置<br />SetWindowPos(NULL,0,0,300,300,SWP_NOZORDER);<br />//SWP_NOZORDER 表示當前的層次</p><p>}<br />void CWndExDlg::OnBtnMove()<br />{<br />// 設定視窗的大小和位置<br />MoveWindow(100,200,200,320);</p><p>}<br />void CWndExDlg::OnBtnCenter()<br />{<br />//置中<br />CenterWindow();</p><p>}<br />void CWndExDlg::OnBtnTopshow()<br />{<br />SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);<br />/* SWP_NOMOVE 表示視窗保持當前的位置,忽略x,y.<br /> SWP_NOSIZE 表示視窗當前保持的大小,忽略,cx,cy</p><p>*/<br />}<br />void CWndExDlg::OnBtnGet()<br />{<br />CString strText=_T("");<br />//擷取視窗標題<br />GetWindowText(strText);<br />SetDlgItemText(IDC_EDIT,strText);</p><p>}<br />void CWndExDlg::OnBtnSet()<br />{<br />CString strText=_T("");<br />GetDlgItemText(IDC_EDIT,strText);<br />//設定視窗標題<br />SetWindowText(strText);<br />}<br />void CWndExDlg::OnBtnMinall()<br />{<br />//擷取任務視窗<br />CWnd* pWnd=CWnd::FindWindow(_T("Shell_TrayWnd"),NULL);<br />//發送ID為0X1F5(WIN+M)的WM_HOTKEY Message<br />pWnd->SendMessage(WM_HOTKEY,0X1F5);</p><p>}<br />void CWndExDlg::OnBtnHid()<br />{<br />//擷取工作列視窗<br />CWnd* pWnd=CWnd::FindWindow(_T("Shell_TrayWnd"),NULL);<br />//隱藏視窗<br />if (pWnd->IsWindowVisible())<br />{<br />pWnd->ShowWindow(SW_HIDE);<br />}</p><p>}<br />void CWndExDlg::OnBtnApp()<br />{<br />//擷取工作列視窗<br />CWnd* pWnd=CWnd::FindWindow(_T("Shell_TrayWnd"),NULL);<br />//顯示視窗<br />if (!pWnd->IsWindowVisible())<br />{<br />pWnd->ShowWindow(SW_SHOW);<br />}</p><p>}<br />void CWndExDlg::OnBtnOne()<br />{<br />m_List.DeleteAllItems();<br />m_List.SetRedraw(FALSE);<br />//擷取桌面視窗<br />CWnd* pDeskTopWnd=CWnd::GetDesktopWindow();<br />//擷取第一個子視窗<br />CWnd* pWnd=pDeskTopWnd->GetWindow(GW_CHILD);<br />while(pWnd!=NULL)<br />{<br />int nItem=m_List.GetItemCount();<br />//擷取視窗類別名<br />CString strClassName=_T("");<br />::GetClassName(pWnd->GetSafeHwnd(),strClassName.GetBuffer(256),256);<br />strClassName.ReleaseBuffer();<br />m_List.InsertItem(nItem,strClassName);</p><p>//擷取視窗標題<br />CString strWindowText=_T("");<br />::GetWindowText(pWnd->GetSafeHwnd(),strWindowText.GetBuffer(256),256);<br />strWindowText.ReleaseBuffer();<br />m_List.SetItemText(nItem,1,strWindowText);<br />//繼續下一個<br />pWnd=pWnd->GetWindow(GW_HWNDNEXT);<br />}<br />m_List.SetRedraw(TRUE);</p><p>}<br />void CWndExDlg::OnBtnTwo()<br />{<br />//m_List.DeleteAllItems();<br />//m_List.SetRedraw(FALSE);<br />//枚舉視窗<br />//::EnumWndProc(EnumWndProc,(LPARAM)m_List);</p><p>}<br /> 

 

 

:http://ishare.iask.sina.com.cn/f/14454291.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.