现在的位置: 首页 > 综合 > 正文

链接:MSDN UserNet等

2013年02月12日 ⁄ 综合 ⁄ 共 9447字 ⁄ 字号 评论关闭
Q 我想知道如何在VC中实现可塌陷的PanelBar界面(类似于OutlookBar)? 
T 可塌陷的PanelBar界面比outlookbar更有吸引力,Windows XP左边的导航工具面版就是采用这种风格,采用这种风格的应用程序也越来越多,比如各种杀毒软件,可能delphi提供的vcl组件可以简化这种操作,对于这种“傻瓜式”的实现我不喜欢。我还是想用C++,实现这种界面,而且我不喜欢附带额外的动态链接库,也不想让程序超过1M,我现在的程序界面已经355K。我采用属性表属性页界面,我想把它修改为这种界面。
http://www.codeproject.com/useritems/CollapsiblePanelBar.asp
是一个使用C#实现的例子程序。怎么使用现成的类代码实现这种界面呢?
A http://freehost10.websamba.com/jiangsheng/water/
DHTML based
Q 为什么在debug下运行完全正常的程序在release下却通不过? 
T 在程序中我派生了一个标签静态类,在类中映射了单击函数,有函数中用GetParent()->PostMessage(MyMessage);发送一个自定义消息给父窗口(对话框),在对话框中映射一个响应该消息的函数用做数据处理。在release下经跟踪,消息得到响应,消息处理函数中的代码均能正常通过,但总会弹出提示,说0X??????指令引用的0000????的内存不能读,请各位大侠们指点一二,在下先谢谢了!!
A http://support.microsoft.com/default.aspx?scid=KB;en-us;195032&
Q 两个问题:IHTMLDocument3为什么不能用;如何利用IHTMLDocument2把TABLE中CELL解析出来 
T 他SDK开发包?
2:如何利用IHTMLDocument2把页面中的一个TABLE表所有的CELL的文字都解析出来?
帮帮忙各位!!!!
A 1 去http://www.microsoft.com/msdownload/platformsdk/sdkupdate/升级你的SDK头文件
2 http://www.codeguru.com/atl/AnalyzeIE.html
Q 如何把ie内嵌到自己的dialog中
T 如何把ie内嵌到自己的dialog中
A http://msdn.microsoft.com/workshop/browser/webbrowser/tutorials/wbtutorial.asp
Q 大家帮忙看看,IHTMLDocument2 的问题? 
T 我的第一种是先设置了SetCapture();
然后在下面
void CDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
 static TCHAR buf[100];
  POINT pt;
  GetCursorPos(&pt);
  HWND hwnd=::WindowFromPoint(pt);
  if(hwnd!=NULL){
   ::GetClassName( hwnd, (LPTSTR)&buf, 100 );
   if ( _tcscmp( buf, _T("Internet Explorer_Server") ) == 0 ){
    POINT iept=pt;
    ::ScreenToClient(hwnd,&iept);
    GetDocInterfaceByMSAA(hwnd);//这个函数里面得到句柄 ,
//GetDocInterface(hwnd);这个不行
   }
  }
 CDialog::OnLButtonUp(nFlags, point);
}

而第2种方法是,做了一个mouse钩子,给onLButtonUp时间发一个WM_LBUUTONUP消息,则上面的两个函数都没有取到IHTMLDocument2,在下面的代码中,列出了出错的位置,不知道是什么原因?

IHTMLDocument2* GetDocInterfaceByMSAA(HWND hwnd)
{
 HRESULT hr;
 HINSTANCE hInst = ::LoadLibrary( _T("OLEACC.DLL") );

 IHTMLDocument2* pDoc2=NULL;
 if ( hInst != NULL ){
  if ( hwnd != NULL ){
      LPFNACCESSIBLEOBJECTFROMWINDOW pfAccessibleObjectFromWindow =
    (LPFNACCESSIBLEOBJECTFROMWINDOW)::GetProcAddress(hInst,_T("AccessibleObjectFromWindow"));
   if(pfAccessibleObjectFromWindow != NULL){
    CComPtr<IAccessible> spAccess;
    hr=pfAccessibleObjectFromWindow(hwnd,0,
     IID_IAccessible,(void**) &spAccess);//取得Webbrowser控件的IAccessible接口
    if ( SUCCEEDED(hr) ){
     CComPtr<IServiceProvider> spServiceProv;
     hr=spAccess->QueryInterface(IID_IServiceProvider,(void**)&spServiceProv);//第2种方法执行这里就hr小于0了
     if(hr==S_OK){
      CComPtr<IHTMLWindow2> spWin;
      hr=spServiceProv->QueryService(IID_IHTMLWindow2,IID_IHTMLWindow2,
       (void**)&spWin);
            if(hr==S_OK)
       spWin->get_document(&pDoc2);
     }
    }
   }
  }
  ::FreeLibrary(hInst);
 }
 else{
  AfxMessageBox(_T("请您安装Microsoft Active Accessibility"));
 }
 return pDoc2;
}

IHTMLDocument2* GetDocInterface(HWND hWnd)
{
 HINSTANCE hInst = ::LoadLibrary( _T("OLEACC.DLL") );
 IHTMLDocument2* pDoc2=NULL;
 if ( hInst != NULL ){
  if ( hWnd != NULL ){
   CComPtr<IHTMLDocument> spDoc=NULL;
   LRESULT lRes;

   UINT nMsg = ::RegisterWindowMessage( _T("WM_HTML_GETOBJECT") );
   ::SendMessageTimeout( hWnd, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&lRes );

   LPFNOBJECTFROMLRESULT pfObjectFromLresult = (LPFNOBJECTFROMLRESULT)::GetProcAddress( hInst, _T("ObjectFromLresult") );
   if ( pfObjectFromLresult != NULL ){
    HRESULT hr;
    hr=(*pfObjectFromLresult)( lRes,IID_IHTMLDocument,0,(void**)&spDoc);//第2种方法执行到此处错误
    if ( SUCCEEDED(hr) ){
     CComPtr<IDispatch> spDisp;
     CComQIPtr<IHTMLWindow2> spWin;
     spDoc->get_Script( &spDisp );
     spWin = spDisp;
     spWin->get_document( &pDoc2 );
    }
   }
  }
  ::FreeLibrary(hInst);
 }
 else
  AfxMessageBox(_T("请您安装Microsoft Active Accessibility"));
 }
 return pDoc2;
}

我之所以用鼠标钩子的原因是,我的程序在后台执行,

A http://www.codeguru.com/ieprogram/SPwdSpy.html
Q 要做一个局域网内的屏幕实时监控程序,有什么好思路吗? 
T 初步想法是客户端程序定时抓图,压缩后传给服务端,不知是否有更高效的处理方法吗?比如以视频的方式传送,或是捕获windows的消息只截取有变化的部分屏幕传送等等。。。看pcanywhere在广域网上运行速度都很快,不知它用了什么技术?
A http://www.rendersoftware.com/products/camstudio/
Q 找对地方啦,问一下怎么不使用navigate2函数直接显示网页?
T 老总让我把一个很大的HTML文件分割成很多小的文件来显示打印,
而我对于VC不熟悉,对COM也只是在VB应用方面有些了解。

我现在使用put_innerHTML实现了显示,但是右键看源文件的时候只有
<html></html>,如果用鼠标选择一下,程序就死了。

我不想使用临时文件的方式,因为这样会有大量的临时文件!
而且也不方便数据访问。如何实现不使用navigate2,显示和打印都没有问题?

我做这个程序的目的是打印
我现在有两个效果没有达到,一个是侦测系统的打印队列里面有多少打印任务,
如果任务多,我就暂时不打印。
一个是让用户选择某个打印机,某个纸型,然后记录下来,以后都不用再让用户
来选择。

上面的问题有些我在VB问过,没有人知道,
希望在这里能够碰上好运。但解决问题还是要靠自己,看msdn去了

A 浏览器控件教学:使用流加载和保存HTML内容 http://www.csdn.net/develop/read_article.asp?id=18465
Q 给一个HTML文件,把文件里的所有链接取出来,怎么做? 
T 给你一个HTML文件名比方说,“C:/a.htm”,用什么方法把里面的所有链接取出来?不会要自己打开文件去分析吧?有现成的语句或命令吗?
A Security (General) Technical Articles  

Strsafe.h: Safer String Handling in CMichael Howard
Secure Windows Initiative
Microsoft Corporation

June 2002

Summary: Keep your C code secure with strsafe.h functions, a set of safer string handling functions for the C programming language. (3 printed pages)

http://msdn.microsoft.com/downloads/samples/internet/browser/walkall/default.asp

Q 请教更改设置的问题 
T 在IE中,选择“工具->Internet选项”后,对选项进行设置,点“确定”,IE将自动通知所有的IE窗口,包括CHtmlView窗口,对选项进行更改。
现在想请教的是:在CHtmlView窗口中,怎样才能模拟这种通知机制,让CHtmlView更改字体、颜色等?
A support.microsoft.com/support/kb/articles/q175/5/13.asp
support.microsoft.com/support/kb/articles/q156/6/93.asp
www.csdn.net/develop/read_article.asp?id=19627
Q 如何实现像OutLook一样的收发邮件的功能?
T 如何使用VC++实现像OutLook一样的收发邮件的功能,感兴趣而已,希望大家能和我交流交流。
A 用MAPI.DLL就可以
MAPI
Simple MAPI
Simple MAPI is a set of functions and related data structures you can use to add messaging functionality to C, C++, or Visual Basic Windows applications. The Simple MAPI functions are available in C and C++ and Visual Basic versions.

msdn.microsoft.com/library/en-us/mapi/html/_mapi1book_simple_mapi.asp

Q 100分求精解:如何非常灵活地控制线条?
T 我在某MDI程序中想实现这样的Drag and Drop功能:
1、在子窗口A中根据多个点坐标Point[n]画一条折线Line;
2、左键点击时判断鼠标坐标是否在此折线上,选中时每个顶点处画一个小方块;
3、可对此折线进行拖放操作:
  a、拖动顶点,则可以改变此折线的形状;
  b、拖动顶点之间的线段,则可以改变整条折线的位置;
  c、特别的是,如果拖放到另一个子窗口B,则在子窗口B中画出此折线,原子窗口A中的折线保持不变。
4、右键点击顶点,弹出一对话框,直接输入此顶点新的坐标,改变此点位置。

我想这应该是类CAD绘图程序的基本功能。
请高手不吝指点,鄙人表示感谢先!

A See MFC sample Scribble.
Q 求一段高级抓图代码
T 越简短越好

我的程序窗口在前面

在不移动或缩小我的窗口前

抓到我的被我窗口遮挡的另一个窗口的图

已知另一个窗口的句柄

A 看来过于简单
http://www.fengyuan.com/article/wmprint.html
Q 设置菜单或工具栏的选中究竟用什么啊
T 我这儿有两个例子一个是非模态,一个是sdi的,都有ON_UPDATE_COMMAND_UI(IDM_CHECK, OnUpdateCheck),但是非模态的那个程序却无法设置菜单选中,都用的 pCmdUI->Enable(m_fCheck);
而且它们的触发机制还不一样,设置断点后,SDI那个老在那儿停,但非模态那个只有点击时才触发的

A http://www.csdn.net/develop/read_article.asp?id=9481
Q 互斥量问题,一个服务创建了一个互斥量,另一个普通exe再创建和他同名的互斥量总是返回"拒绝访问"错误, 人人有份!谢谢! 
T 两个进程间创建互斥量的问题

一个进程为服务,创建了一个互斥量,在另一个exe里面也创建同名的互斥量,但在另一个exe里面创建互斥量的时候总是返回"拒绝访问"的错误

我把作为服务的这个进程不注册为服务而直接运行,这两个程序就能运行的很正常

我在普通exe里面CreateMutex之前也提升了权限,但还是返回同样的错误

A msdn.microsoft.com/library/en-us/ dnaskdr/html/drgui49.asp
Q 如何实现搜索网页链接的方法~~~~~~~~~求救
T 我做了一个专门保存网页的类,下载网页什么的都不是很难,我听说,好像搜索网页链接要对下载的网页的源码进行搜索,我不知道到底要搜索什么,怎么搜索,当然最好还是能调用windows里面自带的网页链接提取,但是哪一个也行,我都不知道怎么下手,请诸位大哥大爷,大婶子,帮帮忙,给我引引路吧,呵呵,谢了
A http://msdn.microsoft.com/downloads/samples/internet/default.asp?url=/downloads/samples/internet/browser/driller/default.asp
Q 起一个新的IE窗口时,如何让窗口上的所有菜单和控件都消失??
T 我用createprocess和ShellExecuteEx都试过了,都不行,有可能是我的参数没设定对,
有人知道该怎么搞吗,谢谢,就是使IE看起来象一个普通的程序,没有其他东西,谢谢
A http://search.cpan.org/src/GMPASSOS/Wx-ActiveX-0.04/activex/IEHtmlWin.cpp
Q 新手首次发问:有谁研究过多重继承下如何实现序列化的功能? 
T 在现在的MFC框架下,如果想要实现序列化的功能,必须是继承自CObject,而CObject又不支持多重继承。那么,如果已经运用了多重继承如何才能实现序列化呢?
A 都不看MSDN的么?

MFC Library Reference  
TN016: Using C++ Multiple Inheritance with MFC

Q 请问COM对象如何响应事件?
T 我有VC7写程序 (不是从MFC开发的)
那么想调用一个COM组件(这里或说是ACTIVEX也可以)要以下步聚:
1:初始化
2;创建类厂
3:创建一个实例并且得到一个接口
4:使用接口

但问题是比如我想做一个窗口由WEBBROWSER CONTROL来控制, 想要响应其BEFORENAVIGATE的事件, 应该怎么做???
再次说明::不是从MFC的APP WIZARD创的工程, 急盼解决, 谢谢。

A Knowledge Base 
Q246247
HOWTO: Sink HTML Document Events for WebBrowser Host
Q 高分求教!!派生状态栏的详细生成方法
T 请说明详细的步骤?谢谢.
A Knowledge Base 
Q315603
HOW TO: Create a Class Derived from CControlBar and Its SubClasses in Visual C++ 6.
Q 请问,如何做一个象IE中前进后退那种带个下来箭头和下拉菜单的按钮?
T Adding a drop arrow to a toolbar button
http://www.codeproject.com/docking/toolbar_droparrow.asp
A see MFCIE sample in MSDN
Q VC下,如何取得DOM节点的值及其的孩子节点?
T http://www.csdn.net/develop/author/netauthor/jiangsheng/files/webbrowserAutomationsrc.zip
A http://www.csdn.net/develop/read_article.asp?id=21702
Q 怎么把24位的RGB转成16位的RGB?
T 怎么把24位的RGB转成16位的RGB?谢了
A http://blog.joycode.com/jiangsheng/posts/3579.aspx
Q 那位大侠救急(SOS)!!
T 找工作人家要我先做一个东西,具体描述如下:
一曲线的数据存储在文件里,可以打开显示,对曲线能进行如下操作:移动,可以用
虚的矩形框似的东西选中其中一段,并且被选中的这段改变颜色,还可以删除、复制
等。那位大侠做过,或者看到过这样的例子告诉我一下!万分感激,以前没做过,并且要的比较急!

A 去看MSDN中MFC的scribble示例和drawcli示例
Q OCX控件上想添加一个工具栏要怎么做?
T OCX控件上想添加一个工具栏要怎么做?控件不是基于对话框,当然也没有框架。特急,各位哥哥姐姐救命啊!
A Knowledge Base 
Q166193 SAMPLE: ColorFrm Demonstrates ActiveX Control with Popup Toolbar
The ColorFrm sample demonstrates adding a popup toolbar to an ActiveX Control. ColorFrm uses a CMiniFrameWnd derived class to contain the toolbar that is visible whenever the control is UI Active. When the control is no longer active, the toolbar is hidden and its position is saved.

Q194294 HOWTO: Add Toolbars and Tooltips to ActiveX Controls
An ActiveX control can have a toolbar (a CToolBar class) as its child window. This article shows a way to create such a toolbar and also how to implement tooltips for buttons on the toolbar window.

http://www.kbalertz.com/technology.aspx?tec=278&pNo=22
http://www.kbalertz.com/technology.aspx?tec=274&pNo=17

Q 麻烦问题,如何把word菜单融入到应用程序中???
T 我看到有高手做的程序可以把word菜单(文件,编辑。。。)融合在自己程序中的mainmenu和popupmenu中,我想在程序中也嵌入word并有这些菜单,特别是将word菜单(文件,编辑。。。等菜单)融合到popupmenu中。
A Knowledge Base 
Q311765 SAMPLE: Visual C++ ActiveX Control for Hosting Office Documents in Visual Basic or HTML
http://support.microsoft.com/support/kb/articles/q311/7/65.asp
Q [sdk]如何获取鼠标的屏幕位置?
T 想做一个星号密码显示的程序,找到一篇文章,差不多简直都已经实现了,只是用的VC,文章在这里:
http://www.springcome.com/lb5000/cgi-bin/topic.cgi?forum=59&topic=315

看来,问题的关键是取得鼠标的屏幕位置,然后即可使用WindowFromPoint取得窗口句柄,有了句柄一切就都好办了。

可是,我在WM_MOUSEMOVE中,想通过得到LOWORD(lParam)和HIWORD(lParam)来得到鼠标坐标,当鼠标移动到本程序的窗口范围以外时,就不再向本程序发送WM_MOUSEMOVE消息了。

又想用SetCapture,可是,必须在鼠标键被下的情况下,鼠标在本程序以外的位置才会被捕捉,我觉得这样的程序还是不太满意。使用不方便。

如果不用钩子的话,有没有其它的办法呢?

如果没有的话,我看我只有学习HOOK和DLL和怎样把DLL嵌入EXE中了。

因为我很希望发布的程序是个小程序,用SDK,主要就是贪图LCC-Win32生成的EXE文件小。^_^

帮帮忙吧!指点指点吧!

A www.codeguru.com/ieprogram/SPwdSpy.html
Q 用MFC写的COM如何实现包容或聚合?
T 如题,能不能给

【上篇】
【下篇】

抱歉!评论已关闭.