04 2010 档案

摘要:窗口的光标是在窗口类中指定的,如果想修改,可以使用SetClassLong,如 HCURSOR s = ::LoadCursor(NULL,IDC_CROSS); SetClassLong(*this,GCL_HCURSOR,(LONG)s); 而SetCursor只是临时将光标修改。   当然如果想长时间用某个Cursor,除了使用SetClassLong,还可以相应WM_SETC... 阅读全文
posted @ 2010-04-28 11:13 Fan Zhang 阅读(300) 评论(0) 推荐(0)
摘要:子例化需要继承WTL中的CWindowImpl,例如 class CEditImpl : public CWindowImpl<CEditImpl, CEdit> {     BEGIN_MSG_MAP(CEditImpl)         MSG_WM_CONTEXTMENU(OnCo... 阅读全文
posted @ 2010-04-23 20:46 Fan Zhang 阅读(350) 评论(0) 推荐(0)
摘要:BEGIN_MSG_MAP宏产生一个类函数,窗口函数会调用这个类函数。 调试的时候会发现当消息来的时候,调试器会跟踪到BEGIN_MSG_MAP和END_MSG_MAP()块之间。另外还有个宏更好用,它是BEGIN_MSG_MAP_EX MESSAGE_HANDLER可以截获消息 COMMAND_ID_HANDLER可以截获WM_COMMAND消息 CHAIN_MSG_MAP可以将消息转到别的类 ... 阅读全文
posted @ 2010-04-23 11:16 Fan Zhang 阅读(578) 评论(0) 推荐(0)
摘要:ReadOnly MultiLine SCROLL CEdit myEdit; myEdit.Attach(GetDlgItem(IDC_OUTPUT)); myEdit.AppendText("----------------"); ::PostMessage(myEdit,EM_SETSEL,-1,-1); //注意一定是PostMessage而不能是SendMessa... 阅读全文
posted @ 2010-04-22 19:11 Fan Zhang 阅读(337) 评论(0) 推荐(0)
摘要:HRESULT 是一种简单的数据类型,通常被属性和 ATL 用作返回值。下表说明各种不同的值。头文件 winerror.h 中包含更多的值。 名称 说明 值 S_OK 操作成功 0x00000000 E_UNEXPECTED 意外的失败 0x8000FFFF E_NOTIMPL 未实现 0x80004001 E_OUTOFMEMORY 未能分配所需的内存 0x8007000E E_INV... 阅读全文
posted @ 2010-04-22 19:08 Fan Zhang 阅读(826) 评论(0) 推荐(0)
摘要:------------------------------------------------------------------------------- ------------------------------------------------------------------------------- 阅读全文
posted @ 2010-04-21 16:09 Fan Zhang 阅读(169) 评论(0) 推荐(0)
摘要:ATL用类封装了Windows的操纵。但窗口函数必须是静态函数,不可以是类函数。trunk可以将静态函数,转到类函数里。 ModuleHelper::AddCreateWndData(&m_thunk.cd, this); 可以将CWindowImp的的this指针存入trunck结构中。 CWindowImplBaseT< TBase, TWinTraits >* pThi... 阅读全文
posted @ 2010-04-21 14:50 Fan Zhang 阅读(317) 评论(0) 推荐(0)
摘要:例如 BEGIN_COM_MAP(CBeeper)   COM_INTERFACE_ENTRY(IDispatch)   COM_INTERFACE_ENTRY(IBeeper)   COM_INTERFACE_ENTRY_TEAR_OFF(IID_ISupportErrorInfo, CBeeper2) END_COM_MAP( ) 主... 阅读全文
posted @ 2010-04-19 23:34 Fan Zhang 阅读(1183) 评论(0) 推荐(0)
摘要:VC提供__uuidof操作符,可以从Interface得到IID。 阅读全文
posted @ 2010-04-19 23:19 Fan Zhang 阅读(457) 评论(0) 推荐(0)
摘要:一边情况下,COM组件会是这样。 class ATL_NO_VTABLE CMath :    public CComObjectRootEx<CComSingleThreadModel>,    public CComCoClass<CMath, &CLSID_Math>,    public IMath... 阅读全文
posted @ 2010-04-19 15:06 Fan Zhang 阅读(380) 评论(0) 推荐(0)
摘要:对于DLL组件一般使用ole2disp.dll。如下图。 但是EXE组件就不能满足需要,需要编译IDL生成的专用Proxy/Stub DLL,如下如。 阅读全文
posted @ 2010-04-16 17:40 Fan Zhang 阅读(744) 评论(0) 推荐(0)
摘要:ATL_NO_VTABLE可以让编译器不产生VTable,并且不设置VPointer的值。 正常情况下,在调用构造函数和析构函数的时候,编译器都会插入相应的代码。如果ATL_NO_VTABLE,可以省去这些代码。ATL中使用这个,是因为这个类为抽象类,不需要VTable。真正的类是CComObject<XXX>,它继承用户的类。 ----------------------------... 阅读全文
posted @ 2010-04-16 10:30 Fan Zhang 阅读(994) 评论(0) 推荐(0)
摘要:telnet XXX.com 80 get / (回车) 阅读全文
posted @ 2010-04-13 14:55 Fan Zhang 阅读(2380) 评论(0) 推荐(0)
摘要:这个项目是用structs1.x做的,关于structs有几点不错的地方,值得学习 1.validate功能 validator-rules.xml中可以对输入点进行控制 2.Action,尤其是DispatchAction Action主要写execute函数,DispatchAction更简单,根据不同参数进入不同的函数处理。 3.自定义TLD 其实这不是struts功能。比如显示国家列表,... 阅读全文
posted @ 2010-04-09 10:48 Fan Zhang 阅读(362) 评论(0) 推荐(0)
摘要:在jsp文件中,可以引用tag和tld文件。 1.对于tag文件 <%@ taglib prefix="ui" tagdir="/WEB-INF/tags" %> 其中的tags是个目录,里面有若干tag文件。 但使用<ti:XXXX>时,目录WEB-INF/tags下,必然有个XXXX.tag文件与之对应。 2.对于tld文件 在... 阅读全文
posted @ 2010-04-08 23:48 Fan Zhang 阅读(31040) 评论(0) 推荐(1)
摘要:<form-validation>     <global>         <constant>             <constant-na... 阅读全文
posted @ 2010-04-08 16:31 Fan Zhang 阅读(387) 评论(0) 推荐(0)
摘要:比较好的库是log4j 使用前将初始信息记录在log4j.configuration,或者采用默认设置 阅读全文
posted @ 2010-04-02 17:23 Fan Zhang 阅读(203) 评论(0) 推荐(0)