Chinaunix首页 | 论坛 | 博客
  • 博客访问: 81514
  • 博文数量: 22
  • 博客积分: 1040
  • 博客等级: 少尉
  • 技术积分: 291
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-15 11:20
文章分类

全部博文(22)

文章存档

2009年(1)

2008年(21)

我的朋友

分类: C/C++

2008-06-04 12:25:58

// TestSpanDlg.cpp : implementation file
//
#include "stdafx.h"
#include "TestSpan.h"
#include "TestSpanDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
 CAboutDlg();
// Dialog Data
 //{{AFX_DATA(CAboutDlg)
 enum { IDD = IDD_ABOUTBOX };
 //}}AFX_DATA
 // ClassWizard generated virtual function overrides
 //{{AFX_VIRTUAL(CAboutDlg)
 protected:
 virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
 //}}AFX_VIRTUAL
// Implementation
protected:
 //{{AFX_MSG(CAboutDlg)
 //}}AFX_MSG
 DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
 //{{AFX_DATA_INIT(CAboutDlg)
 //}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
 CDialog::DoDataExchange(pDX);
 //{{AFX_DATA_MAP(CAboutDlg)
 //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
 //{{AFX_MSG_MAP(CAboutDlg)
  // No message handlers
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTestSpanDlg dialog
CTestSpanDlg::CTestSpanDlg(CWnd* pParent /*=NULL*/)
 : CDialog(CTestSpanDlg::IDD, pParent)
{
 //{{AFX_DATA_INIT(CTestSpanDlg)
  // NOTE: the ClassWizard will add member initialization here
 //}}AFX_DATA_INIT
 // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CTestSpanDlg::DoDataExchange(CDataExchange* pDX)
{
 CDialog::DoDataExchange(pDX);
 //{{AFX_DATA_MAP(CTestSpanDlg)
  // NOTE: the ClassWizard will add DDX and DDV calls here
 //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTestSpanDlg, CDialog)
 //{{AFX_MSG_MAP(CTestSpanDlg)
 ON_WM_SYSCOMMAND()
 ON_WM_PAINT()
 ON_WM_QUERYDRAGICON()
 ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTestSpanDlg message handlers
BOOL CTestSpanDlg::OnInitDialog()
{
 CDialog::OnInitDialog();
 // Add "About..." menu item to system menu.
 // IDM_ABOUTBOX must be in the system command range.
 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
 ASSERT(IDM_ABOUTBOX < 0xF000);
 CMenu* pSysMenu = GetSystemMenu(FALSE);
 if (pSysMenu != NULL)
 {
  CString strAboutMenu;
  strAboutMenu.LoadString(IDS_ABOUTBOX);
  if (!strAboutMenu.IsEmpty())
  {
   pSysMenu->AppendMenu(MF_SEPARATOR);
   pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  }
 }
 // Set the icon for this dialog.  The framework does this automatically
 //  when the application's main window is not a dialog
 SetIcon(m_hIcon, TRUE);   // Set big icon
 SetIcon(m_hIcon, FALSE);  // Set small icon
 
 // TODO: Add extra initialization here
 OnButton1();
 return TRUE;  // return TRUE  unless you set the focus to a control
}
void CTestSpanDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
 if ((nID & 0xFFF0) == IDM_ABOUTBOX)
 {
  CAboutDlg dlgAbout;
  dlgAbout.DoModal();
 }
 else
 {
  CDialog::OnSysCommand(nID, lParam);
 }
}
// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.
void CTestSpanDlg::OnPaint()
{
 if (IsIconic())
 {
  CPaintDC dc(this); // device context for painting
  SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  // Center icon in client rectangle
  int cxIcon = GetSystemMetrics(SM_CXICON);
  int cyIcon = GetSystemMetrics(SM_CYICON);
  CRect rect;
  GetClientRect(&rect);
  int x = (rect.Width() - cxIcon + 1) / 2;
  int y = (rect.Height() - cyIcon + 1) / 2;
  // Draw the icon
  dc.DrawIcon(x, y, m_hIcon);
 }
 else
 {
  CDialog::OnPaint();
 }
}
// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CTestSpanDlg::OnQueryDragIcon()
{
 return (HCURSOR) m_hIcon;
}
 
//以下那段为收缩与展开的关键代码!记得在onindialg里面加上onbutton1()就可以实现了!
void CTestSpanDlg::OnButton1()
{
 // TODO: Add your control notification handler code here
  //   TODO:   Add   your   control   notification   handler   code   here  
  CString   str;  
  if(GetDlgItemText(IDC_BUTTON1,str),str=="DES加密<<")  
  {  
   SetDlgItemText(IDC_BUTTON1,"DES加密>>");  
  }  
  else  
  {  
   SetDlgItemText(IDC_BUTTON1,"DES加密<<");  
  }  
  static   CRect   rectLarge;  
  static   CRect   rectSmall;  
  
  if(rectLarge.IsRectNull())  
  {  
   CRect   rectSeparator;  
   GetWindowRect(&rectLarge);  
   GetDlgItem(IDC_STATIC)->GetWindowRect(&rectSeparator);  
   
   //rectSmall.left=rectLarge.left;  
   //rectSmall.top=rectLarge.top;  
  // rectSmall.right=rectLarge.right;
   rectSmall.left = rectLarge.left;
   rectSmall.top = rectSeparator.top;
   rectSmall.right = rectSeparator.right;
   rectSmall.bottom=rectSeparator.bottom;  
  }  
  if(str=="DES加密<<")  
  {  
   GetDlgItem(IDC_FENJIE)->ShowWindow(SW_HIDE);
   SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(),  
    SWP_NOMOVE   |   SWP_NOZORDER);  
  }  
  else  
  {  
   GetDlgItem(IDC_FENJIE)->ShowWindow(SW_SHOW);
   SetWindowPos(NULL,0,0,rectLarge.Width(),rectLarge.Height(),  
    SWP_NOMOVE   |   SWP_NOZORDER);  
  }  
   
}
阅读(1352) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~