win32拖拽TXT文字

2021-08-11 03:31:54 字數 2117 閱讀 9611

使用win32實現在窗體內拖拽txt文字的訊息響應與讀取。相容unicode於多位元組字符集下,對txt格式中utf-8、ansi與unicode編碼的轉換。文字格式的判斷使用正則實現。

完整示例**(vs2015):

// win32_1.cpp : 定義應用程式的入口點。

//#include "stdafx.h"

#include "dragtxt.h"

#include "gb2312utf8.h"

#include

#include

#include

using

namespace

std;

#define max_file_path 256

// 全域性變數:

hinstance hinst; // 當前例項

hwnd g_hmainwnd;

int_ptr callback dialogproc(

_in_ hwnd hwnddlg,

_in_ uint umsg,

_in_ wparam wparam,

_in_ lparam lparam

);std::string widechar2multibyte(std::wstring src);

std::wstring multibyte2widechar(std::string src);

void ondropfiles(tchar* szfilepath);

int apientry wwinmain(_in_ hinstance hinstance,

_in_opt_ hinstance hprevinstance,

_in_ lpwstr lpcmdline,

_in_ int ncmdshow)

return (int) msg.wparam;

}int_ptr callback dialogproc(

_in_ hwnd hwnddlg,

_in_ uint umsg,

_in_ wparam wparam,

_in_ lparam lparam

) dragfinish(hdrop);

}break;

case wm_destroy:

destroywindow(hwnddlg);

break;

default:

return (int_ptr)false;

}return (int_ptr)false;

}std::string widechar2multibyte(std::wstring src)

std::wstring multibyte2widechar(std::string src)

return result;

}void ondropfiles(tchar* szfilepath)

hwnd hwnd = getdlgitem(g_hmainwnd, idc_text);

#ifdef unicode

#define tfopen _wfopen

#else

#define tfopen fopen

#endif // unicode

file *pfile = tfopen(szfilepath, _t("rb"));

#ifdef unicode// unicode

char sztxt[2048] = ;

char* putf8;

while ((cnt = fread(sztxt, sizeof(char), sizeof(sztxt) - 1, pfile)) > 0)

}#else// 多位元組

wchar_t sztxt[2048] = ;

wchar_t* punicode;

while ((cnt = fread(sztxt, sizeof(wchar_t), sizeof(sztxt) - 1, pfile)) > 0)

}#endif // unicode

fclose(pfile);

}

Win32學習筆記 文字與文字操作

文字與文字操作 1.hdc hdc hdc beginpaint hwnd,lppaintstruct 2.定義字型控制代碼變數 hfont hf 3.獲得系統字型控制代碼 hf getstockobject nfontstyle 獲取系統的字型 建立自定義字型 hfont createfont i...

win32 將控制台輸出重定向到txt文字上

parent.cpp include include intmain se.nlength sizeof security attributes se.binherithandle true se.lpsecuritydescriptor null handle hfile createfilew ...

Win32程式設計

win32 malloc函式的底層實現是win32api utf 16編碼以16位無符號整數為單位,注意是16位為乙個單位,不是乙個字元就只有16位,這個要看字元的unicode編碼處於什麼範圍而定,有可能是2個位元組,也可能是4個位元組現在機器上的unicode編碼一般就是指utf 16 以兩個位...