// 随机数函数的使用
srand((unsigned)time(NULL));
rand();
// 修改计算机名
SetComputerName(computername);
// 插入符操作的相关操作
//插入符操作
HDC hdc = ::GetDC(m_hWnd);
TEXTMETRIC tm;
::GetTextMetrics(hdc, &tm);
::CreateCaret(m_hWnd, NULL, 0, tm.tmHeight);
::SetCaretPos(0, 0);
::ShowCaret(m_hWnd);
::ReleaseDC(m_hWnd, hdc);
::DestroyCaret();
//字符串在屏幕上的宽度
GetTextExtentPoint32(hdc, s1.c_str(), s1.size(), &size1);
//文字输出,设置字体,使用画刷
HDC hdc = ::GetDC(m_hWnd);
TEXTMETRIC tm;
::GetTextMetrics(hdc, &tm);
SIZE size;
GetTextExtentPoint32(hdc, m_str.c_str(), m_str.size(), &size);
HBRUSH pBrush = ::CreateSolidBrush(RGB(49,106,197));
HBRUSH pOldBrush = (HBRUSH)SelectObject(hdc, pBrush);
::SelectObject(hdc, pBrush);
::Rectangle(hdc,0,0,size.cx,tm.tmHeight);
::Rectangle(hdc,100,100,200,200);
::SelectObject(hdc, pOldBrush);
//int nHeight = -MulDiv(32, GetDeviceCaps(hdc, LOGPIXELSY), 72);
//HFONT hFont = CreateFont(nHeight, 0, 0, 0, FW_NORMAL, TRUE, 0, 0, GB2312_CHARSET, 0, 0, 0, 0, "宋体");
//HFONT hOldFont = (HFONT)SelectObject(hdc, hFont);
::SetBkMode(hdc, TRANSPARENT);
::TextOut(hdc, 0, 0, m_str.c_str(), m_str.size());
//::SelectObject(hdc, hOldFont);
//::DeleteObject(hFont);
::ReleaseDC(m_hWnd, hdc);
//鼠标穿透
dwNewLong = GetWindowLong(hwnd, GWL_EXSTYLE);
dwNewLong |= WS_EX_TRANSPARENT |WS_EX_LAYERED;
SetWindowLong(hwnd, GWL_EXSTYLE, dwNewLong);
//禁止显示移动矩形窗体框
::SystemParametersInfo(SPI_SETDRAGFULLWINDOWS,TRUE,NULL,0);
//跟随鼠标移动
case WM_LBUTTONDOWN:
SendMessage(hwnd,WM_NCLBUTTONDOWN,HTCAPTION,0);
break;
//模态对话框
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), hwnd, (DLGPROC)AboutDlgProc);
EndDialog (hDlg, 0) ;
LRESULT CALLBACK AboutDlgProc (HWND hDlg, UINT message,WPARAM wParam, LPARAM lParam)
//非模态对话框
HWND hDlgModeless;
hDlgModeless = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), hwnd, ColorScrDlg);
ShowWindow (hDlgModeless, SW_SHOW);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
if (hDlgModeless == 0 || !IsDialogMessage (hDlgModeless, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
DestroyWindow(hDlgModeless) ;
BOOL CALLBACK ColorScrDlg (HWND hDlg, UINT message,WPARAM wParam, LPARAM lParam);
// 设置非矩形窗体
HRGN hRegion;
hRegion = CreateEllipticRgn(0, 0, 200, 200);
SetWindowRgn(hwnd, hRegion, true);
// 禁止刷背景
case WM_ERASEBKGND:
break;
// GDI+画线,画直线
Graphics graphics(hwnd);
Bitmap bitmap(L"E:\\clockx05.PNG");
graphics.DrawImage(&bitmap, 0, 0, 100, 100);
Pen pen(Color(105,255,0,0));
graphics.DrawLine(&pen, 0,0,100,100);
//创建按扭
CreateWindow(TEXT("button"), TEXT ("test"),
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
8, 16, 160, 28,
hwnd, (HMENU)0, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
//编辑框
CreateWindow(TEXT ("edit"), TEXT("test"),
WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|ES_LEFT|ES_MULTILINE|ES_AUTOHSCROLL|ES_AUTOVSCROLL,
8, 16, 160, 200,
hwnd, (HMENU)0, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
//静态按扭
CreateWindow(TEXT ("static"), TEXT("test"),
WS_CHILD|WS_VISIBLE|SS_CENTER,
8, 16, 160, 200,
hwnd, (HMENU)0, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
//列表框
CreateWindow(TEXT ("listbox"), TEXT("test"),
WS_CHILD|WS_VISIBLE|LBS_STANDARD,
8, 16, 160, 200,
hwnd, (HMENU)0, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
// 无标题栏
WS_POPUP|WS_DLGFRAME
// 修改MAC地址
HKEY hkey;
char macValue[13];
char sMAC[200] = "System\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\0009";
::RegOpenKeyEx(HKEY_LOCAL_MACHINE, sMAC , 0, KEY_WRITE|KEY_READ, &hkey);
::RegSetValueEx(hkey, "NetWorkAddress", 0, REG_SZ, (const BYTE*)macValue, strlen(LPCSTR(macValue)));
// 使用插入符
case WM_SETFOCUS:
CreateCaret(hwnd, NULL, 1, 20) ;
SetCaretPos(20, 20) ;
ShowCaret (hwnd) ;
break;
case WM_KILLFOCUS:
HideCaret (hwnd) ;
DestroyCaret () ;
break;
// 注册系统热键 参数四必须为大写
RegisterHotKey(hwnd, 4551, MOD_ALT, 'Y');
case WM_HOTKEY:
if (wParam == 4551)
{
}
break;
UnregisterHotKey(hwnd, 4551);
//加载图标
LoadIcon(NULL, MAKEINTRESOURCE(IDI_ERROR)); //加载标准图标
LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)); //加载自定义图标
// GDI+的使用
#pragma comment(lib, "GdiPlus.lib")
#include <GdiPlus.h>
using namespace Gdiplus;
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_gdiplusToken;
GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL);
GdiplusShutdown(m_gdiplusToken);