別のウィンドウにまたがってテキストを重ねて印刷する機能を作っていました。別のスレッドに入れたいので、離れるときにテキストを表示するタイマーを実行できますユーザーはプログラムを使用し続けます。私は、コンパイル時にしかし、私はこのエラーを取得する:_beginthreadexは 'overloaded-function'から変換できません
#include "stdafx.h"
#include "Trial.h"
int main()
{
wchar_t* text = L"Message!";
HWND hwnd = FindWindowW(0, L"Halo");
unsigned threadID;
_beginthreadex(0, 0, DrawText,(void *)(hwnd, 175, 15, text, 8), 0 , &threadID);
// Other function here
}
そしてここにヘッダファイルTrial.hです::(それは少しずさんだが、正常に動作しますが、以来、ここ
error C2664: '_beginthreadex' : cannot convert parameter 3 from 'overloaded-function' to 'unsigned int (__stdcall *)(void *)'
は、メインのCPPファイルですほとんどのモニターは約2msのアップデートです、スリープ(2)はちらつきを防ぐのに役立ちます)。私は複数の例を挙げて見てきた
#pragma once
#include <Windows.h>
#include <string>
#include <process.h>
void DrawText(HWND hWnd, float x, float y, wchar_t* mybuffer, float DisplayTime)
{
SetForegroundWindow(hWnd);
HDC hdc = GetDC(hWnd);
SetBkColor(hdc,RGB(255, 255, 255)); // While Background color...
SetBkMode(hdc, TRANSPARENT); // Set background to transparent so we don't see the white...
int howmany = sizeof(mybuffer) * 2;
DisplayTime *= 500;
int p = 0;
while(p < DisplayTime)
{
// Shadow Offset
SetTextColor(hdc,RGB(0, 0, 0));
TextOut(hdc,x+2,y+2, (LPCWSTR)mybuffer,howmany);
// Primary text
SetTextColor(hdc,RGB(255, 0, 0));
TextOutW(hdc,x,y,(LPCWSTR)mybuffer,howmany);
UpdateWindow(hWnd);
p++;
Sleep(2);
}
ReleaseDC(hWnd,hdc);
_endthreadex(0);
}
は、構文をチェックし、私は_beginthreadexに混乱をしなかったことを確認しましたが、問題の原因を見つけるように見えることはできません。|
ありがとう。私はちょうどmsdnが十分に近くにあるとは思わなかった。私はただarglistを見て、そこから行った。 – Tox1k