love in C++, live on MFC

to get ready...

C++博客 首页 新随笔 联系 聚合 管理
  47 Posts :: 0 Stories :: 97 Comments :: 0 Trackbacks

#

鼠标用久了,容易肩膀疼,所以有时候要换到左边,然后需要的时候,再换到右边。每次到控制面板里改还蛮烦的。

现在好了,自己写了个程序,快速切换:当前是右手习惯就换到左手习惯;反之换到右手习惯
程序很小,只有2行代码:

int  APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     
int
       nCmdShow)
{
     
//  TODO: Place code here.

    BOOL bSwapped  =  ::GetSystemMetrics(SM_SWAPBUTTON);
    ::SwapMouseButton(
!
bSwapped);
    
    
return   0
;
}
参考了这篇blog:用C#实现鼠标左右键自动切换

编译后的程序下载
posted @ 2006-05-11 22:33 flyingxu 阅读(601) | 评论 (2)编辑 收藏

Dither这个词怎么翻译?我是指在window中的术语,常见的词组solid color, ditherd color,见下图
o_image61.gif
posted @ 2006-04-23 22:02 flyingxu 阅读(362) | 评论 (1)编辑 收藏

When can a thread receive window messages?
( http://blogs.msdn.com/oldnewthing/archive/2004/06/08/150929.aspx )
If one thread T1 send a message to a window that belongs to another thread T2, the sending thread T1 is put to sleep until the receiving thread replies to the message. But if somebody else sends a message to thread T1, thread T1 is woken to process the message, then is returned to sleep.

如何编写异常安全的C++代码
没有看懂,应该还可以
 
转 :C++基本语法(上)(精品)
转:C++基本语法(下)(精品)
 
Danny Kalev的几篇关于c++的文章,都是中文的
其中有一篇避免使用 protected 类型的数据成员,说"避免使用 protected 类型的数据成员,因为他们会造成对封装的一个错误的理解。相反,将数据成员声明为 private 类型并定义相应的成员函数来访问它们是必要的。通过使用这种方法 ,基类设计上的变化就不会影响其它类",我觉得有道理
 
字符,字节和编码
 
《c语言接口与实现》读后感  介绍了一本好书

发布SnifferFox Beta版本了没有看,但是源代码也许可以研究下

初尝结对编程的甜头 是最XP编程的自己的理解.我现在比较喜欢看关于模式或者XP之类的热门话题在软件工业中实际的应用和自己的理解 ,而不是对书的摘抄或者演示性的代码.

alai04的专栏 在翻译Beyond the C++ Standard Library: An Introduction to Boost

Developers skills test  eMule项目组的找人笔试题,看了下,发现自己还不能去eMule做开源项目啊,唉,

 C++ 完全不完全资源导引--书籍篇 后面的精力过剩类和打击信心类的书都可以读读 :)

posted @ 2006-04-22 23:26 flyingxu 阅读(828) | 评论 (0)编辑 收藏

有两个工程W.exe, 和c.dll
每次我从w调试c的时候都是可以直接从w工程设断点,调试进入c源码的.c的源码我有,在另外一个目录下.这是个我觉得很好的功能.
结果有一天,我拷了个新的c工程,编译后,发现从w进不了c代码了,即使勉强进去了,居然不是停在函数的第一句,而是在某个循环体内.
...
...
后来看了一下,原来,在w工程的debug目录下,还有个c.lib和c.dll的老版本;而新版的c.lib和c.dll在w工程的根目录下.而调试的时候,debug目录下的dll lib是优先的(猜测)
...
...
所以,只是个粗心的问题,不是技术问题.
posted @ 2006-04-17 15:20 flyingxu 阅读(587) | 评论 (0)编辑 收藏

如果看到这个标题时,还不知道什么是errno,那么,你就和我一样.呵呵,我编程也有4,5年了,今天才知道errno.
errno不是我定义的一个变量,也不是否个随意的变量名,而是crt库中定义的一个全局变量
定义:errno Constants (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_errno_Constants.asp)
#if     (defined(_MT) || defined(_DLL)) && !defined(_MAC)
_CRTIMP 
extern int * __cdecl _errno(void);
#define errno   (*_errno())

#else   /* ndef _MT && ndef _DLL */
_CRTIMP 
extern int errno;
#endif  /* _MT || _DLL */
实际上,就是再一些crt函数调用后,errno会被赋值,表示函数调用的状态.有点类似window api中的GetLastError
这些crt函数包括fgetpos或者ftell和strtol之类.
在什么时候用它呢?看下面的一个例子:
    const char* chTest = "123456789222299999999";
    
char* pStop =
 NULL;
    
int nValue = strtol(chTest, &pStop, 10
);

    
int nError =
 errno;
    
if(nError ==
 ERANGE)
        perror(chTest);
这个时候,nValue = 0x7fffffff,你如果只是根据它来判断,是不知道实际上已经出错了.所以,这个时候必须借助errno来判断状态.

惭愧啊,今天才知道.今天看strtol的msdn文档,看到一句话For both functions, errno is set to ERANGE if overflow or underflow occurs.,我看了半天没有找到errno,后来一搜,才发现它居然是个全局变量.
posted @ 2006-04-13 19:15 flyingxu 阅读(3071) | 评论 (2)编辑 收藏

中文不是很好翻译,可以理解成"不论真假;随便说说"
常用句型:
FWIW, I think poster means...
poster这里是楼主的意思,呵呵
posted @ 2006-04-11 17:22 flyingxu 阅读(356) | 评论 (0)编辑 收藏

今天突然想起一个问题,在mfc里面,比较典型的程序模型,dialog, sdi,mdi。特别的,有doc/view结构。有点类似于mvc结构,影响了一代又一代mfc程序员。
那么mfc8.1中,能不能多些这样的结构吧?把当前比较流行的设计模式,都做成现成的类,放在mfc中

呵呵,那个时候,我估计没有人再说mfc设计的很烂了吧?

不过很奇怪,开源社区那么多人在用java c#讨论设计模式,MFC领域的却很少,真是奇怪
posted @ 2006-04-09 21:50 flyingxu 阅读(655) | 评论 (2)编辑 收藏

锋锋说:
把代码投影在墙上,几个人坐下来一起评论也是有效的方法

呵呵,我觉得很cool啊,可惜现在我不是老板,等我哪天成老板了,就这么做
posted @ 2006-04-09 21:37 flyingxu 阅读(281) | 评论 (0)编辑 收藏

windows窗口系统的3个分层

z-order的初始顺序就是窗口创建的先后顺序

对于子窗口,z-order于tab 顺序的关系
posted @ 2006-04-05 22:13 flyingxu 阅读(1036) | 评论 (0)编辑 收藏

书上说匈牙利命名法已经过时了,我不这样认为。

有人认为现在编译器已经可以很好的检测出类型的不匹配,或者IDE中可以很快的看到类型,所以在c中可能需要,在C++(强类型语言)中就不需要了。
C++ made it harder to do that without wicked casting and the compiler catches most of those kind of errors.  So, I agree with the previous poster that it's now redundant.
Also, modern IDEs allow you to hover the cursor over a variable and show you the variable's definition.


不过我觉得代码不是写给编译器看的,而是写给人看的,这里就有self-documenting和readability的问题。
很明显,如果你看到nIndex 或者strFile或者wndNext,就可以很快知道分别是int CString CWnd类型,而不用回头去看变量定义,这样,看代码时就会很快。
而且,对于MFC程序员来说,更重要一些,因为MFC里面的变量都是用匈牙利命名法的。
If you're programming C++/MFC you're better sticking to hungarian for consistency with the class library & Win32 API declarations.
微软的约定,就是标准了

不过,书上提到在泛型编程中不需要,现在体会还不深,可能是对的。

今天(2006 04 13碰巧看到codeproject的一个vote),结果如下

Option Votes %
Pascal Cased 171 10.6
camel Cased 702 43.4
Fixed letter prefix (eg lLocal) 81 5.0
Hungarian prefix (eg strLocal) 481 29.7
Scope prefix (eg l_Local) 36 2.2
Scope and Hungarian prefix (eg l_strLocal) 125 7.7
Responses 1618

Hungarian Notation排第二.
cp上面有两个链接
Conversations: Hungarian wartHogs (http://www.cuj.com/documents/s=7989/cujcexp1911hyslop/hyslop.htm)
号称这篇文章就已经明白的说HN过时了(作者也是c++ coding stardard的作者).
如果不用HN,那么应该用什么样的命名规则呢?
Naming Guidelines(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconNamingGuidelines.asp)
.Net下的推荐,也许别的地方也可以用.
posted @ 2006-04-05 19:45 flyingxu 阅读(581) | 评论 (5)编辑 收藏

仅列出标题
共5页: 1 2 3 4 5