如何制作全屏滚动消息框或窗口?

时间:2009-12-22 22:20:11

标签: c++ c visual-c++ windows-mobile mobile

首先让我开始说我对c ++一无所知,我真的只是更感兴趣的是让它工作然后学习c ++(我已经得到了足够的知识)。

所以基本上我正在尝试为我的Windows Mobile 6专业应用程序制定服务条款,但似乎我需要使用c ++来完成它。经过几个小时的搜索,我找到了一个解决方案,但它是针对Windows移动标准而开发的。

因此,他们以某种方式使用c ++制作消息框,而在标准设备(即非触摸屏手机)上,消息框可以像滚动一样。由于某些原因,专业设备(触摸屏设备)并非如此。

所以我的消息框离开页面,你永远不能接受或拒绝这些条款。所以你永远卡在屏幕上,直到你进行某种软重启。

http://www.mobilepractices.com/2008/10/setupdll-sample-and-walkthrough-terms.html

上面的链接是教程,但这里似乎是显示消息的实际文件。

#include "stdafx.h"
#include "ce_setup.h"

// This is a variable containing the text to be displayed
// in the Terms & Conditions dialog

TCHAR Message[] = _T("TERMS & CONDITIONS\r\n ")
             _T("Selecting YES you're accepting our terms & conditions.\r\n")
    _T("This is just a sample application.\r\n")
    _T("From http://www.mobilepractices.com\r\n")
    _T("You can replace this text with your own.\r\n")
    _T("We're using a setup.dll to show this dialog.\r\n")
    _T("Extra line to force vertical scrollbar.\r\n")
    _T("Extra line to force vertical scrollbar.\r\n")
    _T("Extra line to force vertical scrollbar.\r\n")
    _T("Extra line to force vertical scrollbar.\r\n")
    _T("Extra line to force vertical scrollbar.\r\n")
    _T("Extra line to force vertical scrollbar.\r\n")
    _T("Last line.\r\n")
        ;

// This function will be called when the user
// tries to install the cab. According to its return
// value the installation continues or is cancelled.
// As this could be called more than once
// (i.e. if there is not enough space on the target)
// we should take care about fFirstCall parameter
// to show the dialog only once.

codeINSTALL_INIT Install_Init(    HWND        hwndParent,
            BOOL        fFirstCall,
            BOOL        fPreviouslyInstalled,
            LPCTSTR     pszInstallDir )
{
    if (!fFirstCall 
            || 
            ::MessageBoxW(0, Message, 
            _T("SplashScreenSample")
                    , MB_YESNO) == IDYES)
        return codeINSTALL_INIT_CONTINUE;
    else
        return codeINSTALL_INIT_CANCEL;
}

所以我想将其更改为可滚动的内容。我可以像面板控件一样使用,因为我知道什么有滚动或其他什么?

由于

1 个答案:

答案 0 :(得分:0)

我可能会在TextBox上创建一个带有TOS文本的DialogBox。这样你就可以利用TextBox自动滚动的事实。

然后,您可以使用CreateDialogDialogBox进行实际显示。

这方面的一个好处是你可以使用资源编辑器进行基本的窗口布局。

我知道你说你不想学习C(这是C,而不是C ++)但我真的无法想象你这样做,至少没有一些基本的理解Win32的基础知识,比如WndPrcs等。 Doug Boling的书“Programming Windows CE”里面有一些使用普通Win32的超简单UI应用程序,所以这些应该是一个不错的开始。所以可能是任何基本教程on DialogBox or CreateDialog