- 浏览: 176679 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
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 监控 文件夹
在某些特殊的应用场合,我们很想要一个类似IE功能的模块,定制自己的功能。
HTML控件现在向我们张开了怀抱。稍稍奇怪的是,它并不完全支持WAP协议。看来,IE还是做了自己的解析。
首先,我们要注册一下控件。把Htmlctrl.h包含进来,调用InitHTMLControl()函数,里面的参数为应用程序句柄。以下代码在MFC中使用:
在上面的几个关键点,NM_HOTSPOT是用户点击了网页链接,通过访问pnmHTMLView->szTarget可以得到网页内容。 SendMessage可以将得到的内容赋给控件,控件会自己解析网页元素。如果有图片链接,将会触发NM_INLINE_IMAGE动作。此时亦需要通过访问pnmHTMLView->szTarget来得到图片。如果得到了图片的内容,可以使用下面的代码来显示:
上面代码中hBitmap为图片位图句柄。
我在处理图片的时候,遇到的问题是。使用SHLoadImageFile函数后,需使用DeleteObject函数释放句柄内存。否则将有内存泄露。MSDN没有提及这一现象。
如果未得到图片内容,想在网页相应的位置显示一个叉,DTM_SETIMAGE参数应改为DTM_IMAGEFAIL。
值得注意的是,如果我们处理了NM_HOTSPOT或NM_INLINE_IMAGE消息,需要返回TURE或FALSE,不然控件本身会再处理一遍。
关于 NM_HTMLVIEW 结构体
函数中的第一个参数是一个NMHDR类型的结构体
NMHDR Structure
Contains information about a notification message.
Syntax
Members
hwndFrom
A window handle to the control sending the message.
idFrom
An identifier of the control sending the message.
code
A notification code. This member can be one of the common notification codes (see Notifications under General Control Reference), or it can be a control-specific notification code.
HTML控件现在向我们张开了怀抱。稍稍奇怪的是,它并不完全支持WAP协议。看来,IE还是做了自己的解析。
首先,我们要注册一下控件。把Htmlctrl.h包含进来,调用InitHTMLControl()函数,里面的参数为应用程序句柄。以下代码在MFC中使用:
VERIFY(InitHTMLControl(AfxGetInstanceHandle())); DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS; RECT rect; GetClientRect(&rect); m_hHtmlWnd = ::CreateWindow (DISPLAYCLASS, NULL, dwStyle, rect.left, rect.top, rect.right, rect.bottom, m_hWnd, 0, ::AfxGetInstanceHandle(), NULL); ::SetWindowLong(m_hHtmlWnd, GWL_ID, 12321); ::SetFocus(m_hHtmlWnd); ::SendMessage(m_hHtmlWnd, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)_T("")); 在这里,m_hHtmlWnd是某个Dialog的HWND型成员变量。 然后,在Dialog的WindowProc函数中,使用如下方法: switch(message) { case WM_NOTIFY: { WCHAR wszURL[1000] = {0}; NM_HTMLVIEW* pnmHTMLView = (NM_HTMLVIEW*)lParam; switch (pnmHTMLView->hdr.code) { case NM_HOTSPOT: { OutputDebugString(pnmHTMLView->szTarget); break; } case NM_INLINE_IMAGE: { OutputDebugString(TEXT("NM_INLINE_IMAGE\r\n")); break; } case NM_INLINE_SOUND: { OutputDebugString(TEXT("NM_INLINE_SOUND\r\n")); break; } case NM_TITLE: { OutputDebugString(TEXT("NM_TITLE\r\n")); break; } case NM_META: { OutputDebugString(TEXT("NM_META\r\n")); break; } case NM_BASE: { OutputDebugString(TEXT("NM_BASE\r\n")); break; } case NM_CONTEXTMENU: { OutputDebugString(TEXT("NM_CONTEXTMENU\r\n")); break; } case NM_INLINE_XML: { OutputDebugString(TEXT("NM_INLINE_XML\r\n")); break; } case NM_BEFORENAVIGATE: { OutputDebugString(TEXT("NM_BEFORENAVIGATE\r\n")); break; } case NM_DOCUMENTCOMPLETE: { OutputDebugString(TEXT("NM_DOCUMENTCOMPLETE\r\n")); break; } case NM_NAVIGATECOMPLETE: { OutputDebugString(TEXT("NM_NAVIGATECOMPLETE\r\n")); break; } case NM_TITLECHANGE: { OutputDebugString(TEXT("NM_TITLECHANGE\r\n")); break; } default: { ASSERT(FALSE); break; } } } }
在上面的几个关键点,NM_HOTSPOT是用户点击了网页链接,通过访问pnmHTMLView->szTarget可以得到网页内容。 SendMessage可以将得到的内容赋给控件,控件会自己解析网页元素。如果有图片链接,将会触发NM_INLINE_IMAGE动作。此时亦需要通过访问pnmHTMLView->szTarget来得到图片。如果得到了图片的内容,可以使用下面的代码来显示:
INLINEIMAGEINFO imageInfo; imageInfo.dwCookie = pnmHTMLView->dwCookie; imageInfo.bOwnBitmap = FALSE; imageInfo.hbm = hBitmap; BITMAP mInfo; GetObject(hBitmap, sizeof(BITMAP), (LPBYTE)&mInfo); imageInfo.iOrigWidth = mInfo.bmWidth; imageInfo.iOrigHeight = mInfo.bmHeight; ::SendMessage(pnmHTMLView->hdr.hwndFrom, DTM_SETIMAGE, 0, (LPARAM)(INLINEIMAGEINFO*)&imageInfo);
上面代码中hBitmap为图片位图句柄。
我在处理图片的时候,遇到的问题是。使用SHLoadImageFile函数后,需使用DeleteObject函数释放句柄内存。否则将有内存泄露。MSDN没有提及这一现象。
如果未得到图片内容,想在网页相应的位置显示一个叉,DTM_SETIMAGE参数应改为DTM_IMAGEFAIL。
值得注意的是,如果我们处理了NM_HOTSPOT或NM_INLINE_IMAGE消息,需要返回TURE或FALSE,不然控件本身会再处理一遍。
关于 NM_HTMLVIEW 结构体
typedef struct tagNM_HTMLVIEW { NMHDR hdr; LPSTR szTarget; LPSTR szData; DWORD dwCookie; } NM_HTMLVIEW;
函数中的第一个参数是一个NMHDR类型的结构体
NMHDR Structure
Contains information about a notification message.
Syntax
typedef struct tagNMHDR { HWND hwndFrom; UINT_PTR idFrom; UINT code; } NMHDR;
Members
hwndFrom
A window handle to the control sending the message.
idFrom
An identifier of the control sending the message.
code
A notification code. This member can be one of the common notification codes (see Notifications under General Control Reference), or it can be a control-specific notification code.
发表评论
-
Windows mobile 菜单(Menu Bar) 更改解决方案
2010-04-07 09:06 2521Windows Mobile 菜单(Menu Bar,C ... -
Windows CE/Windows Mobile开发常见问题解答
2009-12-17 14:44 18331.怎样在一个控件获得 ... -
WM/PPC程序与控制面板命令参数
2009-12-17 14:39 1846不完全正确,不过值得参考: WINDOWS目录下的程序(中英 ... -
PC中如何判断网络已经连接或者断开
2009-12-17 14:38 1666在PPC的开发中有时需要判断网络什么时候连接,什么时候断开,并 ... -
PPC中如何找到正在使用中的网络(源代码)
2009-12-17 14:36 962《PPC中如何判断网络已 ... -
在Windows mobile中如何更改短信会话模式
2009-11-04 11:57 1920在windows mobile 中如何更改短信的会话模式呢。 ... -
GPS短信接收 与 导航软件通信
2009-10-29 14:10 1502这是开这个博客的第一篇文章, 在这里开博客主要是为了写一下以前 ... -
windows mobile MAPI Set EntryID
2009-08-17 16:02 0void CSmsMessage::SetEntryID(SB ... -
控制Windows Mobile手机的键盘操作
2009-08-07 11:59 2716如何控制Windows Mobile 手 ... -
WinCE Dialog 添加 Scrollbar
2009-06-22 16:53 4265如何在WinCE上设置滚动条? 最近再搞winCE ... -
Windows mobile HTMLCtrl can not support WML ?
2009-06-01 10:58 1404最近在使用windows mobile上的HTMLCtrl的时 ... -
Windows Mobile 今日插件开发
2009-05-27 16:06 4000http://blog.csdn.net/doubleblue ... -
Developing in C++ with the HTML Viewer Control
2009-05-22 09:34 2226[转载自MSDN:http://msdn.microsoft. ... -
Mobile开发之路_之小总结
2009-04-18 22:20 17861,从那种基本类中继承的函数 变异时都会自动被调用 2,vo ... -
推荐几篇关于Windows Mobile程序安装包制作的文章
2009-03-13 15:39 3500转载至:http://www.cnblogs.com/upt ... -
Hiding the Progress Bar of a .NET 2.0 CF WebBrowse
2009-03-11 14:08 1557[转载自:http://www.chriskarch ... -
如何处理屏幕方向改变
2009-03-01 10:02 1168在Windows Mobile平台的应用程序开发过程中, ... -
Windows Mobile中GPRS连接网络
2009-03-01 09:58 1693Windows Mobile程序中如果 ... -
Outgoing SMS intercepting
2009-02-27 14:33 1065http://social.msdn.microsoft.co ... -
CE MAPI实例讲解【http://heliboy110.blog.163.com/blog/s】
2009-02-27 14:32 1919(一)如何获取Inbox里的所有消息 第一次写这玩意,感 ...
相关推荐
Windows Mobile第三方控件是开发者在构建Windows Mobile应用时不可或缺的工具。Windows Mobile,作为微软针对移动设备开发的操作系统,虽然自带了一些基本的UI元素和功能,但为了满足更丰富的交互设计和功能需求,...
本文将深入探讨如何在Windows Mobile中实现透明控件以及使用渐变色,以提升用户体验。 首先,透明控件允许背景图像或颜色透过控件本身,为用户提供更为丰富的视觉效果。在Windows Mobile中,可以使用GDI+图形库来...
windows mobile 图片展示控件windows mobile 图片展示控件windows mobile 图片展示控件windows mobile 图片展示控件windows mobile 图片展示控件windows mobile 图片展示控件windows mobile 图片展示控件windows ...
使用"AlphaMobileControls"库时,提供的示例代码可以帮助开发者理解如何在实际项目中使用这些控件。通过查看和学习示例,可以快速掌握如何创建和配置透明控件,以及如何处理它们与其他UI元素的相互作用。 8. **...
在Windows CE(简称WINCE)和Windows Mobile操作系统中,开发应用程序时,我们有时需要实现一些高级的用户界面效果,比如背景透明的控件。这样的设计可以使应用看起来更加现代和吸引人,同时也可能提升用户体验。本...
"screenlib windows mobile手機調整控件位置程式庫"是一个专为Windows Mobile操作系统设计的库,主要功能是帮助开发者更方便地调整应用程序中的控件位置。Windows Mobile是微软为掌上设备如智能手机和平板电脑开发的...
在Windows CE和Windows Mobile中,可以使用Bitmap对象并结合PictureBox控件来创建图片按钮。当按钮被按下时,可以通过改变图片的状态(如高亮或按下状态)来反馈用户的操作。在提供的DLL中,可能已经封装了图片按钮...
在Windows Mobile上,透明控件的实现并不像在现代操作系统中那么直观,但仍然可以通过一些技巧来达到目的。 首先,了解基本原理:Windows Mobile使用GDI(图形设备接口)进行绘图,它支持基本的透明性,但没有直接...
Windows Mobile 6.0 模拟器使用 Windows Mobile 6.0 模拟器是一个功能强大的工具,可以模拟企业邮件收发,主要用于测试和开发目的。在本文中,我们将详细介绍如何设置 Windows Mobile 6.0 模拟器来收发企业电子邮件...
这些资源可以帮助开发者深入了解如何在Windows Mobile环境中创建美观且功能丰富的进度条控件,提升应用的用户界面质量。通过学习和实践,开发者可以掌握更多关于控件设计、性能优化以及用户体验提升的技巧。
在Windows Mobile 6开发中,掌握常用控件的用法和打包安装程序的过程是至关重要的。本文将详细阐述这些知识点。 首先,我们来看时间控件DateTimePicker。这个控件允许开发者为时间显示设定特定样式。通过设置...
平台:windows mobile 实现思想:在树型控件中加入背景图,此背景图为树型控件所在窗口的背景图的一部分.这样看起来树型控件就透明了. 解决了各种情况下的背景重叠,错位闪硕等问题,是一个完整的ctreectrl类
当前Windows mobile下的皮肤控件还很少,而且实现透明的更加少。本人曾经在Delphi开发过一套透明控件,于是决定把它移植到windows mobile系统下。在仿真器上和三星I718+上测试过,更换皮肤速度优化得相当快了,在...
在Windows Mobile中,这通常是通过设置控件的背景颜色或使用特定的绘图技术来实现的。 对于button控件,透明化通常涉及更改控件的背景色或使用自定义绘制。例如,我们可以设置按钮的背景色为透明(RGB(255, 255, ...
这款工具包在业界具有较高的知名度,甚至中兴通讯这样的大型企业也在其项目中使用。 Resco.MobileForms Toolkit包含了多种控件,如按钮、文本框、列表视图、日历、滑块、进度条、下拉菜单等,这些控件都经过优化,...
windows mobile动画按钮,.net cf写的
在Windows Mobile操作系统上,开发透明控件是一种提升用户体验和界面美观度的重要技术。透明控件允许用户看到控件下方的背景或其它控件,从而创建出更具吸引力的UI设计。以下我们将详细介绍两种实现Windows Mobile下...