我没有成功地绘制我自己的列表框,继承人的代码:
LRESULT CALLBACK ListBoxProcedure(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_DRAWITEM:
LPDRAWITEMSTRUCT Item;
Item = (LPDRAWITEMSTRUCT)lParam;
if (Item->itemState == ODS_SELECTED)
{
FillRect(Item->hDC, &Item->rcItem, CreateSolidBrush(0));
SetTextColor(Item->hDC, 0x0000FF);
}
else
{
SetBkColor(Item->hDC, 0);
FillRect(Item->hDC, &Item->rcItem, (HBRUSH)GetStockObject(BLACK_BRUSH));
SetTextColor(Item->hDC, 0xFFFFFF);
}
LPSTR lpBuff;
SendMessageA(Item->hwndItem , LB_GETTEXT, Item->itemID, (LPARAM)lpBuff);
TextOutA(Item->hDC, Item->rcItem.left, Item->rcItem.top, (lpBuff), strlen(lpBuff)-1);
if (Item->itemState & ODS_FOCUS)
{
DrawFocusRect(Item->hDC, &Item->rcItem);
}
return true;
break;
case WM_MEASUREITEM:
break;
default:
DefWindowProcA(hwnd, msg, wParam, lParam);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我像这样创建ListBox:
lbLogs …Run Code Online (Sandbox Code Playgroud) 我正在创建一个游戏,我真的很担心黑客攻击,所以我在游戏中写了一个反作弊行为,我搜索了现在的黑客攻击方式,我找到了一些模式,首先,几乎每个hack都使用一个线程(通常使用CreateThread())来创建检查循环(检查hack是否打开/关闭),你们中的任何一个都有一个很好的方法来检查线程是否不是来自游戏吗?PS:I也使用代码外部的线程(在DLL内部)