win32_step_22 - 8BitsCoding/RobotMentor GitHub Wiki


HWND gh_talk_wnd, gh_edit_wnd;
HWND gh_chat_edit, gh_send_btn;

void FindTalkWindow()
{
	gh_talk_wnd = NULL;
	while (gh_talk_wnd = FindWindowEx(NULL, gh_talk_wnd, L"#32770", NULL)) {
		gh_edit_wnd = FindWindowEx(gh_talk_wnd, NULL, L"RichEdit20W", NULL);
		if (gh_edit_wnd != NULL) {
			break;
		}
	}
}

void SendChatData()
{
	if (gh_edit_wnd == NULL) return;

	wchar_t str[128];

	GetWindowText(gh_chat_edit, str, 128);

	SendMessage(gh_edit_wnd, WM_SETTEXT, 0, (LPARAM)str);
	// SendMessage๋Š” ๋™๊ธฐ์‹์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ฆ‰๊ฐ ์ฒ˜๋ฆฌ
	Sleep(200);		// ๋„ˆ๋ฌด๋นจ๋ฆฌ ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด ๋”œ๋ ˆ์ด๋ฅผ ๋„ฃ์Œ
	PostMessage(gh_edit_wnd, WM_KEYDOWN, 0x0000000D, 0x001C001);	// ์—”ํ„ฐํ‚ค๋ฅผ ๋ˆ„๋ฆ„
	PostMessage(gh_edit_wnd, WM_KEYDOWN, 0x0000000D, 0xC01C001);	// ์—”ํ„ฐํ‚ค๋ฅผ ๋ˆ„๋ฆ„
	// PostMessage๋Š” ๋ฉ”์‹œ์ง€ ํ์— ๋ฉ”์‹œ์ง€๋ฅผ ๋„ฃ๋Š”๋‹ค.(์•ˆ์ „)

}

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	if (uMsg == WM_CREATE) {
		gh_chat_edit = CreateWindowEx(WS_EX_CLIENTEDGE, L"EDIT", NULL,
			WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL,
			5, 303, 532, 28, hWnd, (HMENU)25002, NULL, NULL);

		gh_send_btn = CreateWindow(L"Button", L"์ „์†ก",
			WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON,
			540, 301, 80, 31, hWnd, (HMENU)25003, NULL, NULL);
		
		FindTalkWindow();

		return 0;
	}
	else if (uMsg == WM_COMMAND) {
		// ์ปจํŠธ๋กค์„ ํด๋ฆญํ• ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋ฉ”์‹œ์ง€
		if (LOWORD(wParam) == 25003) {
			SendChatData();
		}
	}
	else if (uMsg == WM_DESTROY) {
		DestroyWindow(gh_chat_edit);
		DestroyWindow(gh_send_btn);
		PostQuitMessage(0);
	}
	else if (uMsg == WM_LBUTTONDOWN) {
		//FindTalkWindow();
		//SendChatData();
	}
		
	return DefWindowProc(hWnd, uMsg, wParam, lParam);
}