拖动无标题的窗口可以重载
WM_LBUTTONDOWN,添加如下代码:SendMessage(WM_SYSCOMMAND,0xF012,0);
或
PostMessage (WM_NCLBUTTONDOWN , HTCAPTION , MAKELPARAM(point.x , point. y ));
posted @
2013-05-30 08:35 王海光 阅读(718) |
评论 (0) |
编辑 收藏
代码示例:#define LWA_COLORKEY 0x00000001 //方式
#define WS_EX_LAYERED 0x00080000
typedef BOOL (WINAPI *lpfnSetLayeredWindowAttributes)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
lpfnSetLayeredWindowAttributes SetLayeredWindowAttributes;
//设置成边缘透明
COLORREF maskColor=#000000;
HMODULE hUser32 = GetModuleHandle("user32.dll"); //加载动态链接库
SetLayeredWindowAttributes = (lpfnSetLayeredWindowAttributes)GetProcAddress(hUser32,"SetLayeredWindowAttributes");
//取得SetLayeredWindowAttributes函数指针
//为窗口加入WS_EX_LAYERED扩展属性
SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE)^WS_EX_LAYERED);
//调用SetLayeredWinowAttributes函数
SetLayeredWindowAttributes(this->GetSafeHwnd(), maskColor, 192, LWA_COLORKEY);
FreeLibrary(hUser32); //释放动态链接库
以上代码加入OnInitDialog()中,其中 SetLayeredWindowAttributes(this->GetSafeHwnd(), maskColor, 192, LWA_COLORKEY); 里,maskColor为将进行透明处理的颜色, 192为透明度, LWA_COLORKEY为透明方式。
若要透明整个对话框,则LWA_COLORKEY=2;
若要对选定颜色透明,则LWA_COLORKEY=1; 本文转自:http://chenjiuliang.blog.163.com/blog/static/36572155201151735735374/
posted @
2013-05-29 11:18 王海光 阅读(1741) |
评论 (0) |
编辑 收藏
1、导入Bitmap资源图片,2、重载WM_PAINT ——>void CXXXDlg::OnPaint()
3、添加如下代码:
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP_TOOL); //IDB_BITMAP_TOOL是你自己的图对应的ID
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
其他方法:
重写WM_ERASEBKGND消息
BOOL CxxDialog::OnEraseBkgnd(CDC* pDC)
{
// CDialog::OnEraseBkgnd(pDC);//忘记要不要执行父类的这个了.
CDC memdc;
memdc.CreateCompatibleDC(pDC);
CBitmap bmp;
CBitmap *pOldBmp;
BITMAP bm;//用来保存图片的长宽等信息
bmp.LoadBitmap(IDB_BITMAP1);
bmp.GetBitmap(&bm);
//将图片选进缓冲区
pOldBmp = (CBitmap *)memdc.SelectObject(&bmp);
//如果图片跟对话框的客户区一样大,直接用BitBlt就可以
//pDC->BitBlt(0, 0, rcWnd.Width(), rcWnd.Height(), &memdc, 0, 0, SRCCOPY);
//如果图片比对话框的背景小,就要用StrechBlt来拉伸图片
pDC->StrechBlt(0, 0, rcWnd.Width, rcWnd.Height(), &memdc, 0, 0, bm.bmWidth,bm.bmHeight, SRCCOPY);
//释放DC
memdc.SelectObject(pOldBmp);
memdc.DeleteDC();
return TRUE;
}
其他方法:http://blog.csdn.net/ply421600/article/details/6692967
posted @
2013-05-29 11:02 王海光 阅读(3605) |
评论 (1) |
编辑 收藏
摘要: 1、NameNode启动加载元数据情景分析
NameNode函数里调用FSNamesystemm读取dfs.namenode.name.dir和dfs.namenode.edits.dir构建FSDirectory。
FSImage类recoverTransitionRead和saveNameSpace分别实现了元数据的检查、加载、内存合并和元数据的持久化存储。
saveNameSpace将元数据写入到磁盘,具体操作步骤:首先将current目录重命名为lastcheckpoint.tmp;然后在创建新的current目录,并保存文件;最后将lastcheckpoint.tmp重命名为privios.checkpoint.
checkPoint的过程:Secondary NameNode会通知nameNode产生一个edit log文件edits.new,之后所有的日志操作写入到edits.new文件中。接下来Secondary NameNode会从namenode下载fsimage和edits文件,进行合并产生新的fsimage.ckpt;然后Seco
阅读全文
posted @
2013-05-24 15:29 王海光 阅读(460) |
评论 (0) |
编辑 收藏
摘要: 1、元数据(Metadata):维护HDFS文件系统中文件和目录的信息,分为内存元数据和元数据文件两种。NameNode维护整个元数据。
阅读全文
posted @
2013-05-24 15:18 王海光 阅读(1006) |
评论 (0) |
编辑 收藏
1、今天调试一个demo,发现如下错误。1> 系统找不到指定的文件。
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: The command "copy D:\WL_SDK_LAN_C++_20130521\demo\c++\Debug\Sample.exe D:\YuanTuo_1\wulianSDK\wulian_sdk_sample\SDK\Sample.exe
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :VCEnd" exited with code 1.可以修改下面属性: fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.
下面是彻底解决方法:在工程的stdafx.h中添加(如有类似语句,需注释掉)#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0501 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif
#ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif
#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0501 // Change this to the appropriate value to target Windows Me or later.
#endif
#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0601 // Change this to the appropriate value to target IE 5.0 or later.
#endif
posted @
2013-05-22 17:57 王海光 阅读(3290) |
评论 (0) |
编辑 收藏
默认情况下,Windows的Notepad把文件保存为ANSI格式,在这种情况,设定不同encoding有不同的结果: encoding="GB2312" ,正常显示; encoding="UTF-8" ,出错,提示文本内容中发现无效字符 ;把xml文件在notepad另包存为UTF-8格式, encoding="GB2312" ,出错,提示不支持从当前编码到指定编码的切换; encoding="UTF-8" ,正常;例外:不设置encoding的值,默认就是UTF-8,所以把这种情况归入UTF-8的情况.
posted @
2013-05-22 15:24 王海光 阅读(395) |
评论 (0) |
编辑 收藏
摘要: 如何复制第5行到第10行并粘贴到第12行之后?方法1: 光标放到第五行, 输入:y6y 光标放到第12行, 输入:p 方法2: 命令行模式下输入 :5,10 co 12 方法3: 我一般都是 先移到第五行 d6 p 再移到12行 p 延伸一下, 有时候不想费劲看多少行或复制大量行时,可以使用标签来替代 光标移到起始行,输入ma 光标移到结束行,输入mb 光标移到粘贴行,输入mc...
阅读全文
posted @
2013-05-09 09:44 王海光 阅读(3146) |
评论 (0) |
编辑 收藏
摘要: Ctrl+Alt+F7和startx 进入图形界面 cat /etc/issue 查看ubuntu版本号 cat /etc/lsb-release 查看ubuntu版本号 uname –a 或uname -r查看内核版本 top 查看CPU和内存...
阅读全文
posted @
2013-05-06 16:29 王海光 阅读(504) |
评论 (0) |
编辑 收藏
摘要: 本人用的版本:ubuntu10.04 .4,hadoop 1.0.4最近一直在自学Hadoop,今天花点时间搭建一个开发环境,并整理成文。首先要了解一下Hadoop的运行模式:单机模式(standalone) 单机模式是Hadoop的默认模式。当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模...
阅读全文
posted @
2013-05-06 15:14 王海光 阅读(600) |
评论 (0) |
编辑 收藏