Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Tạo Dialog với full screen trong lập trình VC++

    Full Screen với SDI thì có 1 bài rùi, với Dialog thì sao nhỉ ??? [IMG]images/smilies/dont_know.gif[/IMG]

    Với dialog tạo Full screen thì có 1 cách đơn giản là tạo ra 1 cái dialog ko có title bar và để nó với chế độ Maximize thì nó tức khắc sẽ Full Screen. [IMG]images/smilies/11.gif[/IMG] nhưng điều này có 1 hạn chế là khi bạn không muốn Full Screen nữa thì hơi khó [IMG]images/smilies/smile.png[/IMG] [quan điểm cá nhân].

    Để tạo Full screen bạn tạo 1 prj bằng MFC với kiểu là dialog.

    sau đó tạo 1 cái menu có 2 item là: Full screen (để Full screen), 1 item Exit (để kết thúc).

    Đoạn code để load 1 menu Popup.
    code:

    Mã:
     void CDemoFullScreenDlg::OnRButtonUp(UINT nFlags, CPoint point) {    // TODO: Add your message handler code here and/or call default        CDialog::OnRButtonUp(nFlags, point);     // Show Popup menu.    CMenu menu;    menu.LoadMenu(IDR_MENU1);    CMenu *pMenu = menu.GetSubMenu(0);     ClientToScreen(&point);    pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x,point.y,AfxGetMainWnd());  }
    đoạn code để tạo Fullscreen. (bắt Event Command của ID_FULLSCREEN [là ID của item Full Screen trong menu]).


    Mã:
     void CDemoFullScreenDlg::OnFullscreen() {    // TODO: Add your command handler code here    isFullScreen = !isFullScreen;    if(isFullScreen)    {         // Set parrent of that is Desktop        this->SetParent(NULL);        // Get Rect of Desktop        CRect rctWnd;        // save this rect of Windows current.        this->GetWindowRect(rectSave);        GetDesktopWindow()->GetWindowRect(&rctWnd);                        // Modify Window Style        this->ModifyStyle(WS_BORDER,0);                     // Set Pos for Window        SetWindowPos(&wndTopMost,rctWnd.left,rctWnd.top,rctWnd.right,rctWnd.bottom,SWP_SHOWWINDOW);    }     else    {        this->ModifyStyle(0,WS_BORDER | WS_SYSMENU);        SetWindowPos(&wndTopMost,rectSave.left,rectSave.top,            abs(rectSave.right-rectSave.left),abs(rectSave.bottom-rectSave.top),            SWP_SHOWWINDOW);            }}
    code để exit [IMG]images/smilies/smile.png[/IMG].


    Mã:
     void CDemoFullScreenDlg::OnExit() {    // TODO: Add your command handler code here    OnOK();    }
    Ngoài ra trong class CDemoFullScreenDlg mình thêm 2 biến:

    Mã:
     BOOL isFullScreen; // cái này để quản lý coi trạng thái hiện tại là Fullscreen hay không? CRect rectSave; // cái này để lưu lại thông tin của dialog khi chưa Fullscreen để lấy lại.
    Đây là Demo của bài viết này. [IMG]images/smilies/smile.png[/IMG].

    Chúc các bạn vui vẽ.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn thử bấm chuột phải -> chọn Full Screen thử nó có Fullscreen ko?

    cái này mình code trên VC6 nhưng mình nghĩ trên 2k8 nó cũng run như vậy [IMG]images/smilies/biggrin.png[/IMG]

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •