标签: createwindow

使用英文标题栏创建一个Win32 Window应用程序,但标题栏无处不在.怎么会?

HWND wndHandle; //global variable

// code snipped

WNDCLASSEX wcex;

// code snipped

wcex.lpszClassName = (LPCWSTR) "MyTitleName";

 // code snipped

wndHandle = CreateWindow(
            (LPCWSTR)"MyTitleName",     //the window class to use
            (LPCWSTR)"MyTitleName",     //the title bar text
...
...
Run Code Online (Sandbox Code Playgroud)

我正在关注Win32 Window应用程序的教程.上面的代码用于设置窗口屏幕标题栏的名称.编译器对我大吼:"无法从'const char [12]'转换为'LPCWSTR'"所以好吧,我用"LPCWSTR"对我的字符串"MyTitleName"进行了编码,所有编译都很好.但是,在运行时,窗口屏幕的标题结果是中文字符.我尝试改变字符串,中文字符总是根据我的字符串改变.我正在使用XP Visual C++ 2008 Express Edition,我将英语(美国)作为非unicode程序的设置.我不明白.弦怎么变成中国人?

windows string casting hwnd createwindow

3
推荐指数
2
解决办法
2332
查看次数

即使我得到类窗口的句柄,BringWindowToTop也不起作用

我正在使用以下方法注册我的班级:

BOOL CNDSClientDlg::InitInstance()
{
    //Register Window Updated on 16th Nov 2010, @Subhen
    // Register our unique class name that we wish to use
    WNDCLASS wndcls;
    memset(&wndcls, 0, sizeof(WNDCLASS));

    wndcls.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
    wndcls.lpfnWndProc  =  ::DefWindowProc; 
    wndcls.hInstance = AfxGetInstanceHandle();
    wndcls.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wndcls.lpszMenuName = NULL;

    //Class name for using FindWindow later
    wndcls.lpszClassName = _T("CNDSClientDlg");
    // Register new class and exit if it fails

    if(!AfxRegisterClass(&wndcls)) // [C]

    {
        return FALSE;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后调用InitInstance方法并在类的构造函数中创建窗口:

CNDSClientDlg::CNDSClientDlg(CWnd* pParent /*=NULL*/)
    : …
Run Code Online (Sandbox Code Playgroud)

c++ windows mfc registerclass createwindow

2
推荐指数
2
解决办法
7849
查看次数

在CreateWindow上设置HWND似乎失败

我来自C#而且很新,所以请耐心等待.

我有一个MainWindow有一些私有HWND变量的类.一个用于窗口本身,一个用于每个控件.我想我需要跟踪它们,或者以后会让事情变得更容易吗?

无论如何,我有:

class GUIMain
{
private:
    HINSTANCE hInstance;
    HWND hWnd; // The windows itself
    HWND cmdGenerate, cmdQuit; // 2 buttons
Run Code Online (Sandbox Code Playgroud)

我有一个调用的私有方法initialise(HWND hWnd)被调用WM_CREATE,它将所有控件添加到窗口:

void MainWindow::initialise(HWND hWnd)
{
  this->hWnd = hWnd;

  cmdGenerate = CreateWindow(TEXT("BUTTON"), TEXT("&Generate..."),
                             WS_VISIBLE | WS_CHILD,
                             6, 6, 150, 25,        
                             hWnd, (HMENU)1, 0, 0);

  cmdQuit     = CreateWindow(TEXT("BUTTON"), TEXT("&Quit"),
                             WS_VISIBLE | WS_CHILD,
                             6, 37, 150, 25,        
                             hWnd, (HMENU)2, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)

但是这似乎没有把按钮放在窗口上.事实上,当我调试时,我可以看到它甚至没有越过第一行.奇怪的是,当我把它更改为:

void MainWindow::initialise(HWND hWnd)
{
  //this->hWnd = hWnd;

  /*cmdGenerate = */CreateWindow(TEXT("BUTTON"), …
Run Code Online (Sandbox Code Playgroud)

c++ windows winapi createwindow

2
推荐指数
1
解决办法
3089
查看次数

Win32 CreateWindow()调用在子线程中挂起?

我正在为OpenGL开发一个可移植层(为Linux和Windows抽象出glX和wgl的东西)......无论如何,它有一个创建窗口的方法...如果你没有传入父级,你会得到一个带框架的真实窗口...如果你传入一个父级,你会得到一个无框的无框窗口......

这工作正常,只要我在1个线程上完成所有操作...一旦另一个线程尝试创建子窗口,应用程序就会在win32调用"CreateWindow()"中死锁.有任何想法吗?

winapi deadlock window createwindow

1
推荐指数
1
解决办法
4243
查看次数

C中创建的窗口崩溃的原因

当我使用该CreateWindow()函数在 C 中创建一个窗口时 ,它运行良好,它会立即消失,所以我使用该getch()函数尝试解决问题,但它不起作用。窗口不显示按钮,并崩溃。

但是当我使用MessageBox()而不是 时getch(),它会保持正常运行。我试图弄清楚为什么会发生这种情况。

我尝试了很多东西,比如一起使用MessageBox()getch()一起使用,使用getch()before 和 after ShowWindow(),但每次它都会给我一些有趣的结果,但不是窗口的正常功能。

有效的代码:

#include <windows.h>

int _stdcall WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
    HWND h;
    HINSTANCE i;
    h = CreateWindow("Button", "XYZ", WS_OVERLAPPEDWINDOW, 15, 20, 250, 200, 0, 0, i, 0);
    ShowWindow(h, nCmdShow);
    MessageBox(0, "Stop", "Wait", MB_OK);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

不起作用的代码:

#include <windows.h>

int _stdcall WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) …
Run Code Online (Sandbox Code Playgroud)

c c++ windows getch createwindow

0
推荐指数
1
解决办法
74
查看次数

标签 统计

createwindow ×5

windows ×4

c++ ×3

winapi ×2

c ×1

casting ×1

deadlock ×1

getch ×1

hwnd ×1

mfc ×1

registerclass ×1

string ×1

window ×1