CreateProcess创建进程

STARTUPINFO         si = { 0 };
PROCESS_INFORMATION pi = { 0 };
si.cb = sizeof( si );
si.dwFlags = STARTF_USESIZE;
si.dwXSize = 100;
si.dwYSize = 200;
//创建进程
CreateProcess( "ChildProc.exe",
    "\"Hello Child\"",  
    NULL, NULL, FALSE,
    CREATE_NEW_CONSOLE, 
    NULL, NULL, &si, &pi );
//输出信息
printf( "Process Handle: %p\n", pi.hProcess );
printf( "Process ID: %d\n", pi.dwProcessId );
printf( "Thread Handle: %p\n", pi.hThread );
printf( "Thread ID: %d\n", pi.dwThreadId );

插入符函数

插入符函数(鼠标闪烁)
CreateCaret 创建与窗口相关的插入符;
SetCaretPos 在窗口中设置插入符的位置
ShowCaret 显示插入符
HideCaret 隐藏插入符
DestroyCaret 撤销插入符
GetCaretPos 获取插入符位置
GetCaretBlinkTime 获取插入符闪烁时间
SetCaretBlinkTime 设置插入符闪烁时间

demo

CreateCaret(hWnd, (HBITMAP)NULL, 1, 15);
SetCaretPos(100, 100);
ShowCaret(hWnd);

win32操作ini配置文件

 /获取内容/
//获取字符串

GetPrivateProfileString(_T("Config"),_T("Name"),_T("暂无名字"),strName.GetBuffer(MAX_PATH),MAX_PATH,_T("C:\\1.ini"));

//一级菜单|二级菜单|没有找到返回的字符串|strName字符串变量名||ini路径
//获取数字

ndata = GetPrivateProfileInt(_T("Config"),_T("Data"),0,g_strPath);

//返回值是获取到的数据,一级菜单|二级菜单|如果没有找到返回的数字|路径

/写入内容/

::WritePrivateProfileString(_T("Config"),_T("Name"),g_strName,_T("C:\\1.ini"));//写入字符串|数字

//一级菜单|二级菜单|要写入的内容|ini路径

根据客户区大小创建窗口

CWnd::CalcWindowRect 传入客户区大小,返回窗口大小
使用CWnd::SetWindowPos 设置窗口大小,使用这个函数之前必须调用计算函数

// 用于保存窗口大小
RECT rect;
// 指定客户区大小(赋值)
SetRect(&rect,0,0,100,100);
//传入客户区的窗口大小,传入窗口风格,返回窗口的大小
AdjustWindowRect(&rect,WS_OVERLAPPEDWINDOW,false/*有无菜单*/);

rect.right - rect.left, rect.bottom - rect.top

unicode与ascii字符转换

多字节转宽字节

// 使用完成后, 需要手动调用free函数释放内存
wchar_t* MToW(char* pstr, UINT nCodePage=CP_ACP)
{
    // 获取转换后所需要的内存大小
    int nstrLen = MultiByteToWideChar(nCodePage, 0, pstr, strlen(pstr), NULL, 0);
    // 申请内存
    wchar_t* pwszstr = (wchar_t*)malloc(sizeof(wchar_t)*(nstrLen + 1));
    // 清空内存
    ZeroMemory(pwszstr, sizeof(wchar_t)*(nstrLen + 1));
    // 进行转换
    nstrLen = MultiByteToWideChar(nCodePage, 0, pstr, strlen(pstr), pwszstr, nstrLen);
    // 字符串结尾
    pwszstr[nstrLen] = 0;
    return pwszstr;

}

USES_CONVERSION;/A2W
CA2W

宽字节转多字节

// 使用完成后, 需要手动调用free函数释放内存
char* WToM(const CString& str,UINT nCodePage=CP_ACP)
{
    // 转换后所需要的内存大小
    int nstrLen = WideCharToMultiByte(nCodePage, 0, str, wcslen(str), NULL, 0, NULL, NULL);
    // 申请内存空间
    char* pmstr = (char*)malloc(sizeof(char)*(nstrLen + 1));
    // 清空内存
    ZeroMemory(pmstr, sizeof(char)*(nstrLen + 1));
    // 转换字符串
    nstrLen = WideCharToMultiByte(nCodePage, 0, str, wcslen(str), pmstr, nstrLen, NULL, NULL);
    // 添加结尾
    pmstr[nstrLen] = 0;
    return pmstr;
}

USES_CONVERSION;/W2A
CW2A