问题列表 - 第37311页

MFC/WinAPI的大问题

我需要创建一个带有formview的SDI表单,该表单有两个选项卡,它们将多个对话框封装为选项卡内容.但表格必须有彩色背景.

像这样的事情让我讨厌编程.

首先,我尝试通过资源编辑器CTabControl尝试了不同的东西,但是没有记录的行为和没有答案的怪癖让我陷入了障碍.

经过几个小时的搜索,我发现有一个名为属性表的控件,这实际上就是我所需要的.

稍后再搜索一下,我发现属性表甚至可以实际嵌入到CFormView中,如下所示:http://www.codeguru.com/Cpp/controls/propertysheet/article.php/c591

并且可以通过CPropertySheet的AddPage方法将从CPropertyPage派生的对话框类直接添加为页面.

大!不是这样......有些控件没有用,而且没有被创建,遇到了奇怪的断言.结果是对话框中缺少DS_CONTROL样式.在http://blogs.msdn.com/b/oldnewthing/archive/2007/01/08/1434501.aspx上完全意外地发现它,在MSDN上没有关于它的消息!属性页必须包含:DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_TABSTOP,可以有:DS_SHELLFONT | DS_LOCALEDIT | WS_CLIPCHILDREN样式!没有任何其他,默认情况下使用资源编辑器创建.为软件开发人员提供的超级隐藏信息!

该页面评论中的引用:"OMG.这就是那种行为的来源......

事实证明,当在64位计算机上播放声音时,PlaySound API依赖于这种行为."拉里奥斯特曼,据我所知,他在微软工作了20年,让我大笑起来.

无论如何,固定的是,对话框控件(CPropertyPages)现在按预期创建,而那部分看起来有点远,但是下一部分颜色再次死路一条!

通常你重写WM_CTLCOLOR,检查控件ID或hwnd并提供必要的画笔来设置你需要的颜色.对于CPropertySheet来说并不是这样,整个顶行保持灰色!对于CTabCtrl,它以某种方式工作,对于CPropertySheet它没有.

为什么?似乎CPropertySheet有点嵌入CTabControl或其他东西,因为如果我重写WM_ERASEBKGND,只有内部部分改变颜色.

现在看来CPropertySheet中有一个GetTabControl()方法,它返回CPropertySheet的实际CTabCtrl*.但由于它是在内部构建的,我无法找到如何覆盖它的WM_CTLCOLOR消息处理.

似乎有一种方法可以对windowproc进行子类化,但经过多次尝试后,我找不到任何关于如何做到这一点的好消息来源.MSDN上的SubclassWindow doc说:"调用此函数时,窗口不得已经附加到MFC对象."?!那是什么?

我尝试通过MFC向导创建一个基于CTabCtrl的自定义CCustomTabCtrl类,创建一个实例,从一个CCustomPropertySheet处理程序调用SubclassWindow来覆盖内部CTabCtrl,但没有任何作用,神秘崩溃在MFC内部深处.

尝试使用GCL_HBRBACKGROUND为内部CTabCtrl设置WindowLong,没有任何改变.

最糟糕的是,我找不到任何关于该主题的有用文档或教程.

我发现大多数是如何拥有标签控件,但这在很多方面严重错误,我想要一个标准的控制行为减去背景颜色,我不想支持不同的颜色方案,Windows版本,IAccesible接口和所有这些东西,我见过的所有者抽样样本都没有得到所有标准控制行为的10%.我没有幻想我会创造更好的东西,我不会掌握手头的资源.

我偶然发现了这个帖子,我不能同意作者更多:http : //arstechnica.com/civis/viewtopic.php?f=20&t=169886&sid=aad002424e80121e514548d428cf09c6所有者绘制控件都是无证件的PITA,那是不可能的是的,MSDN上有NULL信息可以提供帮助.

那么有什么我错过或没有尝试过吗?如何更改CPropertySheet的顶部条带背景颜色?任何人?

winapi mfc visual-studio

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

需要IP地址

当MAC地址唯一时,为什么我们需要IP地址?我们只能与MAC地址通信吗?

networking tcp mac-address

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

用JQuery检查第一个单选按钮

我想查看每组的第一个单选按钮.但是有一些单选按钮被禁用,因此脚本应该忽略它们并转到下一个非禁用按钮.

我写了这样的东西,但它不起作用:

$(document).ready(function(){
if ($("input['radio']).is(':disabled'))
    {  
        $(this).attr('checked', false );
    }
else
    {
        $(this).attr('checked', true );
    }
});

非常感谢

jquery radio-button checked

29
推荐指数
4
解决办法
6万
查看次数

Google Appengine网址安全性

是否可以确保对我的Appengine应用程序的特定URL(无论是否为AJAX)的GET/POST请求只能在应用程序内部而不是从外部进行(即)必须拒绝来自其他域的所有请求.

可能?

security url google-app-engine

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

63
推荐指数
2
解决办法
9万
查看次数

任务计划程序2.0的C#API

有没有人对基于(基于COM)的Task Scheduler 2.0 API的.NET c#包装有任何建议?

无法使用Google找到任何内容.

(我知道有基于.net的调度程序,如Quartz.net,但我需要在Windows Scheduler中使用功能齐全的GUI)

谢谢,

马特

c#

33
推荐指数
3
解决办法
3万
查看次数

如何"覆盖"[]接受C++中的两个参数?

我试图用C++创建一个位向量类来模拟一些硬件.在我所知的大多数HDL(硬件描述语言)中,特定位被引用如下:

my_vector[bit_position]
Run Code Online (Sandbox Code Playgroud)

和子向量的引用如下:

my_vector[msb:lsb]
Run Code Online (Sandbox Code Playgroud)

要么

my_vector[msb,lsb]
Run Code Online (Sandbox Code Playgroud)

我希望能够用我的位向量类做类似的事情.有没有办法告诉operator[]接受两个论点?

我考虑的替代方案是:

  1. 使用range方法:

    my_vector.range(msb,lsb)

  2. 使用字符串并解析它:

    my_vector["msb:lsb"]

但它们都不具吸引力.第一个,因为它与它在HDL中建模的方式有太大不同,第二个是因为我不喜欢在不需要时处理字符串,而且它看起来不够优雅.

最好的方法是什么?

c++ operator-overloading

10
推荐指数
3
解决办法
1740
查看次数

ZendFramework - 找出正在运行的查询 - 更简单的方法

想知道是否有更简单的方法来查看我的模型正在运行查询?

我知道备用选项是xDebug和Firebug但是想知道一种更简单的方法.

任何人?

谢谢

debugging profiling zend-framework

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

在java中将布尔值转换为布尔值

我有一个代码作为

public class BooleanTest {
    public BooleanTest() {
        super();
    }


    public static void main(String args[]){
      BooleanTest bt = new BooleanTest();
      bt.doProcess();

    }

    private boolean method() {
        return false;
    }

    private void doProcess() {
      Boolean obj = (Boolean)method();
      System.out.println(obj.booleanValue());
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是在任何情况下都可以 System.out.println(obj.booleanValue());抛出NullPointerException

java casting boolean

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

printf转换规范的大小限制

printf转换规范%后面是标志,宽度,精度,长度修改器和转换说明符.转换规范的大小是否有实际限制?

%s2个字符长,而%08.2f6个字符长.我的问题是,根据C99标准,可以创建的格式字符串中的最大单一规范的长度是多少?

c printf c99 format-string

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