Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Sửa lỗi cho mình bài Chuơng trình hiển thị 2 cửa sổ -2 tiêu đề khác

  1. #1
    Ngày gia nhập
    11 2007
    Bài viết
    9

    Mặc định Sửa lỗi cho mình bài Chuơng trình hiển thị 2 cửa sổ -2 tiêu đề khác

    #include<afxwin.h>

    class CMyApp:public CWinApp
    {
    public:
    BOOL InitInstance();
    };

    class CMyWin:public CFrameWnd
    {
    public:
    CMyWin(char *s)
    {
    Create(NULL,s);
    }
    };

    CMyApp theApp;



    BOOL CMyApp::InitInstance()
    {
    m_pMainWnd=new CMyWin("Bai tap 1.4");
    m_pMainWnd->ShowWindow(m_nCmdShow);
    m_pMainWnd->UpdateWindow();

    m_pMainWnd=new CMyWin("Ten");
    m_pMainWnd->ShowWindow(m_nCmdShow);
    m_pMainWnd->UpdateWindow();
    return true;
    }
    Mình làm đc nó hiện 2 cửa sổ với 2 tiêu đề khác nhau ,nhưng khi tắt 1 cửa sổ
    thì nó tắt cả 2 lun.Cần xây dựng như nào để tắt đc từng cửa sổ nhỉ

  2. #2
    No Avatar
    ngocbig Khách

    Trong hàm InitInstance.

    Lần thứ nhất khi bạn tạo cửa sổ "Bai tap 1.4" và gán cho biến m_pMainWnd thì nó trở thành cửa số chính. Nhưng với lần gán thứ hai thì cửa số "Ten" lại thành cửa sổ chính. Cửa sổ "Bai tap 1.4" trở thành cứa sổ "mồ côi" (thử xem có cách nào access đc tới nó không?!!!!). Bạn thử thì biết nếu tắt cửa sổ "Tên" thì chương trình sẽ thoát và hiển nhiên cửa sổ "Bai tap 1.4" cũng sẽ bị tắt. Nhưng nếu bạn tắt cửa sổ "Bai tap 1.4" thì sẽ chẳng ảnh hường gì tới cửa sổ "Ten" cả.
    Đã được chỉnh sửa lần cuối bởi ngocbig : 15-12-2008 lúc 03:36 PM.

  3. #3
    Ngày gia nhập
    11 2007
    Bài viết
    9

    VD như với 2 cái cửa sổ mình tạo ở trên, giờ mình muốn 1 cửa sổ xuất hiện góc trái trên màn hình và cửa sổ kia xuất hiện ở góc phải dưới.
    Mình dùng hàm SetWindowPos() nhưng ở tham số HWND hWnd thì mình không biết xác định cửa sổ cần tác động ntn.
    Bạn nào biết chỉ mình với, thank.

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    trong lớp của cửa sổ có biến toàn cục m_hWnd lưu hWnd đó bạn, lấy nó ra xài là được. Hoặc bạn cũng có thể dùng GetSafeHwnd()
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  5. #5
    Ngày gia nhập
    11 2007
    Bài viết
    9

    Mình vẫn chưa hiểu lắm, bạn có thể cho mình 1 VD đơn giản được không, Thank

  6. #6
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định Sửa lỗi cho mình bài Chuơng trình hiển thị 2 cửa sổ -2 tiêu đề khác

    bạn làm thế này để lấy hwnd của cửa sổ :
    C++ Code:
    1. HWND MyHwnd = this->m_hWnd;
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  7. #7
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Mình nghĩ bạn nên đọc bài của Ngocbig

  8. #8
    Ngày gia nhập
    11 2007
    Bài viết
    9

    Code:
    #include<afxwin.h>
    
    class CMyApp:public CWinApp
    {
    public:
    	BOOL InitInstance();
    };
    
    class CMyWin:public CFrameWnd
    {
    public:
    	CMyWin(char *s);
    };
    
    CMyApp theApp;
    
    BOOL CMyApp::InitInstance()
    { 
    	m_pMainWnd=new CMyWin("A");
    	m_pMainWnd->ShowWindow(m_nCmdShow);
            SetWindowPos(?,HWND_TOP,0,0,300,400,SWP_SHOWWINDOW);
    
    	m_pMainWnd=new CMyWin("B") ;
    	m_pMainWnd->ShowWindow(m_nCmdShow); 
    	m_pMainWnd->UpdateWindow();	
    	return true;
    }
    
    CMyWin::CMyWin(char *s)
    {	
    	Create(NULL,s);
    	HWND MyHwnd = this->m_hWnd;
    }
    Chỗ ? giờ thêm gì hả các bạn, nếu mình đánh MyHwnd vào thì thông báo là MyHwnd chưa được khai báo, làm thế nào để có thể sử dụng MyHwnd ở dưới nhỉ? Thank

  9. #9
    No Avatar
    ngocbig Khách

    Bạn thử xem lại code này xem.
    C++ Code:
    1. #include<afxwin.h>
    2. #include <vector>
    3.  
    4. using std::vector;
    5.  
    6.  
    7. class CMyApp:public CWinApp
    8. {
    9. public:
    10.     BOOL InitInstance();
    11. };
    12.  
    13. class CMyWin:public CFrameWnd
    14. {
    15. public:
    16.     CMyWin(const CString& title, CMyWin* pParent=NULL)
    17.         :m_pParent(pParent),
    18.         m_pTheSecondWin(NULL)
    19.     {
    20.         Create(NULL,title);
    21.     }
    22.     ~CMyWin()
    23.     {
    24.         if(m_pParent)
    25.             m_pParent->Clean();
    26.     }
    27. private:
    28.     CMyWin* m_pTheSecondWin;
    29.     CMyWin* m_pParent;
    30. public:
    31.     void Clean(){m_pTheSecondWin=NULL;}
    32.     afx_msg void OnLButtonDown(UINT, CPoint)
    33.     {
    34.         //============
    35.         if (m_pParent==NULL&&m_pTheSecondWin==NULL)
    36.         {
    37.             m_pTheSecondWin = new CMyWin("The Second",this);           
    38.             m_pTheSecondWin->ShowWindow(SW_NORMAL);
    39.             m_pTheSecondWin->UpdateWindow();
    40.         }
    41.         else if(m_pParent!=NULL)
    42.         {
    43.             m_pParent->MoveWindow(0,0,400,400);
    44.             MoveWindow(400,0,400,400);
    45.         }
    46.     }
    47.     DECLARE_MESSAGE_MAP()
    48. };
    49.  
    50. CMyApp theApp;
    51.  
    52.  
    53. BEGIN_MESSAGE_MAP(CMyWin,CFrameWnd)
    54.     ON_WM_LBUTTONDOWN()
    55. END_MESSAGE_MAP()
    56. BOOL CMyApp::InitInstance()
    57. {
    58.     CString s= "Bai tap 1.4";
    59.     m_pMainWnd=new CMyWin(s);
    60.     m_pMainWnd->ShowWindow(m_nCmdShow);
    61.     m_pMainWnd->UpdateWindow();  
    62.     return true;
    63. }

Các đề tài tương tự

  1. Thẻ ưu đãi tiêu dùng quanh năm tiết kiệm tới 60% nhu cầu tiêu dùng nào!
    Gửi bởi chuyengia_td trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 15-08-2013, 12:24 PM
  2. Bài tập C Chuơng trình bỏ qua hàm gets(ch) là lỗi gì?
    Gửi bởi kwideur trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 03-02-2013, 03:17 PM
  3. làm thế nào khi chọn nào tiêu đề thì hiện lên nội dung chi tiết về tiêu đề đó
    Gửi bởi thuan trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 11-08-2011, 07:18 AM
  4. Tại sao không đọc dữ liệu từ file vào chuơng trình được
    Gửi bởi danielh trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 18-06-2011, 02:08 PM
  5. Nhật ký chi tiêu | Chương trình quản lý chi tiêu
    Gửi bởi AnhPham trong diễn đàn Dự án & Source code C#, ASP.NET
    Trả lời: 11
    Bài viết cuối: 09-05-2011, 07:56 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn