- 浏览: 177308 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
zhong504989:
你好。。请问你解决了么?我刚开始搞wap开发,用xhtml来, ...
ASP.NET Mobile Web Form 怎么设置背景图呢? -
xiaoqiang2008:
后台接收代码最好是用java写的
Windows Mobile 上传文件到服务器 -
xiaoqiang2008:
有后台接收的代码吗?能否贴上来看看,谢谢!
Windows Mobile 上传文件到服务器 -
guowee:
大家可以试着用一下ATL的HTML控件,不错的。
Windows mobile HTMLCtrl can not support WML ? -
guowee:
注意: 监控的文件夹名称最后不能有 \
windows mobile 监控 文件夹
[转载自MSDN:http://msdn.microsoft.com/en-us/library/ms838684.aspx]
Microsoft Internet Explorer for the Pocket PC lets you browse the wireless Web and view offline Web files. However the HTML Viewer Control gives these abilities and more to any application.
Applies to:
Microsoft Windows Powered Pocket PC 2000
Microsoft eMbedded Visual C++ version 3.0
VOImage classes (optional) available for free from Virtual Office Systems, Inc
GIF, JPG, and other types of files
Languages Supported
English
Creating the HTML Viewer Control
Before you can create a control you need a project with a main window. The following steps walk you through creating both your project and the HTML Viewer Control.
- From the Microsoft eMbedded Visual C++ 3.0 menu, select File and then select New .
- Select Projects and then, from the list of available project types, select WCE Pocket PC Application .
- In the Project Name edit control box, enter HTMLControl and click OK to start the project wizard.
- Select A Typical 'Hello World!' Application and then click Finish .
- In the confirmation dialog box, click OK to generate the source files. You now have a buildable project.
- From the Target Platform drop-down list box, select Win32 (WCE x86em) Debug
, as shown in Figure 1. (This can also be done by selecting Build
and then Set Active Configuration
from the menu and selecting the desired target platform.)
Figure 1: Select the target platform.
- Add
the following code (the lines of code you need to add are in red, the
other lines are there for reference only) near the top of the HTMLCONTROL.CPP
file:
#include <sipapi.h> #include <htmlctrl.h> #define IDC_HTMLVIEW 10 #define MAX_LOADSTRING 100
- Add the following global variable at the top of the HTMLCONTROL.CPP
file:
HWND hwndCB; // The command bar handle HWND hwndHTML; // HTML Control static SHACTIVATEINFO s_sai;
- Add the following function at the end of the HTMLCONTROL.CPP
file:
HWND CreateHTMLControl(HWND hwndParent) { RECT rc; DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_CLIPSIBLINGS; if(!InitHTMLControl( hInst )) MessageBox(hwndParent, TEXT("Unable to initialize HTML control"), TEXT("Error"), MB_OK); GetClientRect (hwndParent, &rc); return CreateWindow (DISPLAYCLASS, NULL, dwStyle, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, hwndParent, (HMENU)IDC_HTMLVIEW, hInst, NULL); }
- Call the CreateHTMLControl() function after the call to CreateRpCommandBar
() in the WM_CREATE processing code, and pass the hWnd of the application window as the hwndParent
parameter. Your WM_CREATE code should now look like this (new code is in red):
case WM_CREATE: hwndCB = CreateRpCommandBar(hWnd); hwndHTML = CreateHTMLControl(hWnd); SetFocus (hwndHTML); break;
- Add the following code to the message switch of the WndProc()
function (this will cause the HTML control to resize any time the parent window is resized):
case WM_SIZE: if(IsWindow(hwndHTML)) SetWindowPos(hwndHTML, 0, 0, 0, LOWORD(lParam), HIWORD(lParam) - MENU_HEIGHT, SWP_NOZORDER | SWP_NOMOVE); break;
Populating the HTML Viewer Control
Before populating the list control with HTML code, you should decide if you want to work with Unicode or single-byte text. Depending on which one you choose, you will send either the DTM_ADDTEXT or the DTM_ADDTEXTW message to the control. The one you use determines the format of text parameters in notification messages sent from the control to your application. I'll assume you want to use Unicode, because that is the default character set for most Pocket PC character strings.
To set the contents of the HTML Viewer Control, you need to:
- First clear the contents of the HTML Viewer Control by sending it a WM_SETTEXT message and an empty string.
- Send the HTML code to the HTML Viewer Control in one or more DTM_ADDTEXTW messages.
- Send the HTML Viewer Control a DTM_ENDOFSOURCE message.
The HTML code can come from a file, your code, or the Internet. To keep it simple, let's just generate the code in your sample project. Add the following code to your WM_CREATE message handler, after the SetFocus() line and before the break (the optional DTM_ENABLESHRINK message tells the control to attempt to fit the contents of the HTML page to the control width if possible):
BOOL fFitToPage = TRUE; PostMessage(hwndHTML, DTM_ENABLESHRINK, 0, fFitToPage); SendMessage(hwndHTML, WM_SETTEXT, 0, (LPARAM)""); SendMessage(hwndHTML, DTM_ADDTEXTW, FALSE, (LPARAM)TEXT("<HTML><TITLE>Test</TITLE>")); SendMessage(hwndHTML, DTM_ADDTEXTW, FALSE, (LPARAM)TEXT("<BODY><P>")); SendMessage(hwndHTML, DTM_ADDTEXTW, FALSE, (LPARAM)TEXT("<h1>Heading</h1>Normal Text<BR>")); SendMessage(hwndHTML, DTM_ADDTEXTW, FALSE, (LPARAM)TEXT("<A HREF=\"www.voscorp.com\"><IMG SRC=\"\\Pic.gif\"></A>")); SendMessage(hwndHTML, DTM_ADDTEXTW, FALSE, (LPARAM)TEXT("</BODY></HTML>")); SendMessage(hwndHTML, DTM_ENDOFSOURCE, 0, (LPARAM)NULL);
You will now have a control that contains the text (including the header style) from your HTML code, but if you run the application at this point you will notice that the image (\PIC.GIF ) is not displayed (as shown in Figure 2). To display images, your application needs to load the images in response to a notification event from the HTML Viewer Control.
Figure 2: HTML View Control without images.
Processing HTML Viewer Control Events
There are several notification messages from the HTML Viewer Control that you may wish to process. If you have no need for images, you may choose not to process the NM_INLINE_IMAGE message. Likewise, you may not want to process sounds, so you may choose not to process the NM_INLINE_SOUND message. Of course, anything you choose not to process will not be available to your users via the control.
To avoid having the (rather lengthy) code to handle the loading of GIF, JPG, BMP, and other code using IMGDECMP, this code assumes you are using the free VOImage class libraries from Virtual Office Systems, Inc to do the dirty work. To add image processing to your code, follow these steps:
- Add IMGDECMP.LIB to your list of library files to link to by selecting Project
, then Settings
, and then Link
from the menu.
Note that SHLoadImageFile and SHLoadImageResource should be used for Windows Mobile-based devices.
- Select All Configurations from the drop-down list box, and add IMGDECMP.LIB to the Object/Library Modules edit box.
- Add the VOIMAGE.CPP and VOIMAGE.H files to your project by selecting Project , then Add to Project , and then Files from the menu.
- Add a global CVOImage class variable to the HTMLCONTROL.CPP
file like this:
HWND hwndHTML; // HTML Control CVOImage img; // Interface to IMGDECMP.DLL static SHACTIVATEINFO s_sai;
- Add a WM_NOTIFY message to your window message procedure like this:
case WM_NOTIFY: switch(wParam) { case IDC_HTMLVIEW: { NM_HTMLVIEW* pnm = (NM_HTMLVIEW*)lParam; switch(pnm->hdr.code) { case NM_INLINE_IMAGE: { HDC dc = GetDC(hWnd); if(img.Load(dc, pnm->szTarget)) { INLINEIMAGEINFO imgInfo; imgInfo.dwCookie = pnm->dwCookie; imgInfo.iOrigHeight = img.GetHeight(); imgInfo.iOrigWidth = img.GetWidth(); imgInfo.hbm = img.Copy(); imgInfo.bOwnBitmap = FALSE; SendMessage(hwndHTML, DTM_SETIMAGE, 0, (LPARAM)&imgInfo); } else SendMessage(hwndHTML, DTM_IMAGEFAIL, 0, pnm->dwCookie); ReleaseDC(hWnd, dc); break; } // end case NM_INLINE_IMAGE: } // end switch(pnm->hdr.code) } // End case IDC_HTMLVIEW: } // End switch(wParam) break;
Note that we pass a copy of the HBITMAP to the DTM_SETIMAGE message by using the Copy() method of the VOImage object and setting bOwnBitmap to TRUE. This allows us to reuse the same VOImage object for multiple image files, and instructs the control to clean up the HBITMAP objects we have passed to it instead of relying on the calling code to do the cleanup.
- As desired, add case handlers for the NM_INLINE_SOUND message, NM_HOTSPOT (received when the user clicks on an HTML link), and any other HTML Viewer Control notification message type. You may want to process the NM_HOTSPOT message, displaying different HTML code depending on what was clicked.
Conclusion
The HTML Viewer Control allows you to include the rich interfaces to your application that users are used to seeing in Web browsers. What you do with the control is of course up to you, but as you can see in Figure 3, you can have quite an impressive interface with very little coding.
Figure 3: HTML View Control with images.
发表评论
-
Windows mobile 菜单(Menu Bar) 更改解决方案
2010-04-07 09:06 2526Windows Mobile 菜单(Menu Bar,C ... -
Windows CE/Windows Mobile开发常见问题解答
2009-12-17 14:44 18411.怎样在一个控件获得 ... -
WM/PPC程序与控制面板命令参数
2009-12-17 14:39 1863不完全正确,不过值得参考: WINDOWS目录下的程序(中英 ... -
PC中如何判断网络已经连接或者断开
2009-12-17 14:38 1670在PPC的开发中有时需要判断网络什么时候连接,什么时候断开,并 ... -
PPC中如何找到正在使用中的网络(源代码)
2009-12-17 14:36 968《PPC中如何判断网络已 ... -
在Windows mobile中如何更改短信会话模式
2009-11-04 11:57 1928在windows mobile 中如何更改短信的会话模式呢。 ... -
GPS短信接收 与 导航软件通信
2009-10-29 14:10 1509这是开这个博客的第一篇文章, 在这里开博客主要是为了写一下以前 ... -
windows mobile MAPI Set EntryID
2009-08-17 16:02 0void CSmsMessage::SetEntryID(SB ... -
控制Windows Mobile手机的键盘操作
2009-08-07 11:59 2724如何控制Windows Mobile 手 ... -
WinCE Dialog 添加 Scrollbar
2009-06-22 16:53 4284如何在WinCE上设置滚动条? 最近再搞winCE ... -
Windows mobile HTMLCtrl can not support WML ?
2009-06-01 10:58 1410最近在使用windows mobile上的HTMLCtrl的时 ... -
Windows Mobile 今日插件开发
2009-05-27 16:06 4018http://blog.csdn.net/doubleblue ... -
Mobile开发之路_之小总结
2009-04-18 22:20 17941,从那种基本类中继承的函数 变异时都会自动被调用 2,vo ... -
Windows Mobile中使用htmlCtrl控件
2009-04-18 22:16 2405在某些特殊的应用场合,我们很想要一个类似IE功能的模块,定制自 ... -
推荐几篇关于Windows Mobile程序安装包制作的文章
2009-03-13 15:39 3523转载至:http://www.cnblogs.com/upt ... -
Hiding the Progress Bar of a .NET 2.0 CF WebBrowse
2009-03-11 14:08 1574[转载自:http://www.chriskarch ... -
如何处理屏幕方向改变
2009-03-01 10:02 1178在Windows Mobile平台的应用程序开发过程中, ... -
Windows Mobile中GPRS连接网络
2009-03-01 09:58 1700Windows Mobile程序中如果 ... -
Outgoing SMS intercepting
2009-02-27 14:33 1076http://social.msdn.microsoft.co ... -
CE MAPI实例讲解【http://heliboy110.blog.163.com/blog/s】
2009-02-27 14:32 1936(一)如何获取Inbox里的所有消息 第一次写这玩意,感 ...
相关推荐
Pro Android C++ with the NDK Native Development Kit) is an advanced tutorial and professional reference for today's more sophisticated app developers now porting, developing or employing C++ and ...
《利用微软Windows驱动基础开发驱动》是Penny Orwick和Guy Smith所著,由微软出版社于2007年出版,共有928页。这本书是微软Windows驱动基础团队精心制作的全面指南,旨在为希望为Windows开发健壮的驱动程序的读者...
Developing Drivers with the Microsoft Windows Driver Foundation Foreword Part 1 - Getting Started with WDF Chapter 1 - Introduction to WDF Chapter 2 - Windows Driver Fundamentals Chapter 3 ...
With more than 100 practical recipes, this book is a guide showcasing techniques to use the power of C++ scripting while developing games with UE4. It will start with adding and editing C++ classes ...
Introduction to Python Programming and developing GUI applications with PyQT.pdf 作者B.M. Harwani © 2012 Course Technology, a part of Cengage Learning. ISBN-13: 978-1-4354-6097-3 ISBN-10: 1-4354-6097...
Developing Mobile Websites with HTML5 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看...
Beyond BIOS 第三版 Beyond.BIOS.Developing.with.the.Unified.Extensible.Firmware.Interface.3rd.Editio
《使用Keil uVision2 IDE进行C语言开发》 在嵌入式系统开发领域,Keil uVision2集成开发环境(IDE)是一个广泛使用的工具,它为C语言编程提供了高效且用户友好的平台。本教程将详细介绍如何利用Keil uVision2进行...
Learning C# by Developing Games with Unity 3D Beginner’s Guide – assumes that you know nothing about programming concepts. First you will learn the absolute basics of programming using everyday ...
"Developing MeeGo apps with Python and QML.pdf"这份文档可能包含了逐步的教程,从创建新项目开始,指导读者如何设置开发环境,编写Python后端代码,设计QML界面,以及如何实现两者之间的交互。通过实践案例,...
DEVELOPING APPLICATIONS WITH VISUAL STUDIO.NET is an in-depth guide that takes Windows programming to the next level: creating .NET applications that leverage the prior knowledge and experience of C++...
This book explains how to write .NET 2.0 applications and services... By the end of the book, you will be proficient in developing .NET applications and services for both the Windows desktop and the Web.
Developing Apps with GPT-4 and ChatGPT 完整版本
BIOS Developing with the Unified Extensible Firmware Interface(3rd) 英文azw3 第3版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
### 使用Unity与C#开发2D游戏:独立游戏编程的核心知识点 #### 一、Unity引擎简介 Unity是一款功能强大的跨平台游戏开发引擎,它支持多种编程语言,其中C#是最常用的一种。Unity不仅适用于2D游戏开发,还广泛应用...
《Developing Drivers with the Microsoft Windows Driver Foundation》是2007年出版的一本关于驱动程序开发的专业书籍,它由微软官方认证,旨在帮助开发者掌握Windows Driver Foundation (WDF)框架来构建驱动程序。...