Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 操作仅在从函数返回后执行_Winforms_Visual Studio 2010_Visual C++_C++ Cli_Hwnd - Fatal编程技术网

Winforms 操作仅在从函数返回后执行

Winforms 操作仅在从函数返回后执行,winforms,visual-studio-2010,visual-c++,c++-cli,hwnd,Winforms,Visual Studio 2010,Visual C++,C++ Cli,Hwnd,我遇到了一个小问题,我在一个函数中编写了一些代码,应该在一块板上显示一些图片,我只能在整个函数完成后才能看到这些图片。这是: (在下面的代码中,pictures是PictureBoxes的数组) 并调用UpdateWindow(hwnd) 但我不断地得到一个错误: 错误15错误LNK2028:未解析的令牌(0A00001D)“外部”C“内部stdcall UpdateWindow(struct HWND uu*)”(?UpdateWindow@$$J14YGHPAUHWND u@@@Z)在函数“

我遇到了一个小问题,我在一个函数中编写了一些代码,应该在一块板上显示一些图片,我只能在整个函数完成后才能看到这些图片。这是:

(在下面的代码中,
pictures
PictureBoxes
的数组)

并调用
UpdateWindow(hwnd)

但我不断地得到一个错误:

错误15错误LNK2028:未解析的令牌(0A00001D)“外部”C“内部stdcall UpdateWindow(struct HWND uu*)”(?UpdateWindow@$$J14YGHPAUHWND u@@@Z)在函数“private:静态无效调用GUI::Form1::paint_路径(struct b_node*)”(?paint)中引用_path@Form1@GUI@$$FCMXPAUb\u节点@@@Z)C:\…\GUI.obj

还有什么需要帮助的吗


提前感谢

延迟的原因是函数正在执行时,绘制代码没有执行。函数返回消息后,处理恢复,并将处理WM_PAINT。您可以调用UpdateWindow API来强制在函数执行期间立即绘制。

好的,我读了有关UpdateWindow的内容,发现应该包含文件
Winuser.h
Windows.h
。但是VisualStudio(2010)不允许我包括它们。我会犯错误。有什么想法吗?你在用什么语言?您正在使用什么GUI库?语言错误C++,GUI C++,添加<代码> Windows .h < /> >错误:<代码>错误C2143:语法错误:“丢失”;在“constant”C:\…\include\windef.h
之前,
错误C2059:语法错误:“constant”C:…\include\windef.h
及其他一些错误。更新域解决方案适用于C/C++WinAPI应用程序。您似乎正在将C++/CLI与Winforms GUI库一起使用。尝试在问题中添加Winforms标记,希望得到更相关的答案。听从Scott的建议会给自己带来更多麻烦。只需使用
pictures[place]->Update()精灵!!!把它作为答案,我会选择的。非常感谢。
void static paint_path(ArrNode* node)
{
    list<int> head=(NG->game->getboard()).getcolored();
    int place=-1;
    while(head.size())
    {
        place=head.back();
        head.pop_back();
        if(node[place].color == white)
            pictures[place]->ImageLocation = "white-.bmp"; /*THIS LINE*/
        else if(node[place].color == black)
        {
            pictures[place]->ImageLocation = "black-.bmp"; /*AND THIS LINE*/
        }
    }
}
HWND hwnd = ::CreateWindowA("STATIC","dummy",WS_VISIBLE,0,0,100,100,NULL,NULL,NULL,NULL);
::SetWindowTextA(hwnd,"Window!");