Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.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
C++ 有没有办法使重叠子窗口中的editbox可编辑?_C++_Winapi_C++11_Mfc - Fatal编程技术网

C++ 有没有办法使重叠子窗口中的editbox可编辑?

C++ 有没有办法使重叠子窗口中的editbox可编辑?,c++,winapi,c++11,mfc,C++,Winapi,C++11,Mfc,最后两天我在我的小GUI上工作。我是C++和WiAPI世界的新手,想了解一些关于WiAPI的基本知识。p> 目前,我在父窗口中创建了一个具有WS_OVERLAPPEDWINDOW和WS_CHILD样式的childWindow,并添加了一个按钮和一个编辑框。我为我的按钮和editbox子类化了回调函数,这样它们就有了自己的回调函数。按钮当前工作正常,但编辑框不正常。我无法在编辑框内单击并编辑文本 这是我创建窗口的方式: 创建一个普通的父窗口/主窗口 使用WS_CHILD和WS_OVERLAPPED

最后两天我在我的小GUI上工作。我是C++和WiAPI世界的新手,想了解一些关于WiAPI的基本知识。p> 目前,我在父窗口中创建了一个具有WS_OVERLAPPEDWINDOW和WS_CHILD样式的childWindow,并添加了一个按钮和一个编辑框。我为我的按钮和editbox子类化了回调函数,这样它们就有了自己的回调函数。按钮当前工作正常,但编辑框不正常。我无法在编辑框内单击并编辑文本

这是我创建窗口的方式:

  • 创建一个普通的父窗口/主窗口
  • 使用WS_CHILD和WS_OVERLAPPEDWINDOW样式创建一个childwindow
  • 将一个编辑框和一个具有WS_CHILD样式的按钮添加到childwindow
  • 这里是一个截图:

    如果我从childwindow中删除WS_OVERLAPPEDWINDOW或WS_子样式,editbox就会工作。但是,子窗口没有“windowborder”,或者不再位于父窗口内

    在互联网上搜索后,我发现MDI Windows可以解决这个问题


    现在我的最后一个问题是,是否绝对不可能使用WS_OVERLAPPEDWINDOW样式创建一个childwindow,并在其中添加EditBox和其他控件元素?MDI窗口是唯一让editbox工作的方法吗?或者我是否可以使用一些样式/设置?

    通过创建“重叠子窗口”,您到底想做什么?您正在尝试创建文档窗口吗?然后是的,您需要使用MDI或其他类似技术。不能有重叠的子窗口;这是混合了两种不同的窗口类型(顶层和子窗口)。我建议彻底阅读。这些都是必读的。TL;DR:经常使用
    WS|u CHILD | WS|u BORDER
    。Thx。“窗口样式。窗口概述”这对我有很大帮助。。。。我在MSDN网站上有点迷路了。。似乎没有找到我需要的合适的网站:S的WS|U儿童| WS|U边界风格没有标题栏。但是,我找到了另一个选择,起诉“孩子”和“流行歌曲”。它不再位于重叠窗口内,而是一个子弹出窗口,editbox工作:)否则我将不得不使用MDI。不知何故,我无法再编辑我的评论。。。所以我的意思是只有W_Poppupwindow。。没有孩子