小编c00*_*0fd的帖子

Groupbox调整大小问题,顶部有单选按钮

我不确定我在这里做错了什么.我正在尝试使用MFC实现调整大小对话框窗口.代码非常简单.我重写以下大小调整通知:

void CMyDlg::OnSize(UINT nType, int cx, int cy)
{
    CDialog::OnSize(nType, cx, cy);

    // TODO: Add your message handler code here


    //...

    //First move the groupbox, pGroupbox is of type CWnd
    pGroupbox->MoveWindow(rcGroupbox);

    //And then move all radio buttons in it
    //Each is moved the exact same way
    //pEachRadioButton is of type CWnd
    pEachRadioButton->MoveWindow(rcEachRadioButton);

}
Run Code Online (Sandbox Code Playgroud)

但是我得到的结果就是这个.

首先是这里的初始组框:

在此输入图像描述

只有当我开始向下拖动主窗口框架的底部时才会发生这种情况.我得到这个神器:

在此输入图像描述

请注意,单选按钮位置本身是正确的.如果我将鼠标移动到其中任何一个上,它会正确地重绘(就像这个"关闭"按钮):

在此输入图像描述

这是对话框本身的布局:

IDD_MY_DIALOG DIALOGEX 0, 0, 437, 190
STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU …
Run Code Online (Sandbox Code Playgroud)

c++ windows winapi mfc dialog

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

我可以在 MSVC++ 中使用 128 位整数吗?

我正在使用 Visual Studio 2010 编写 C++/MFC 应用程序,我需要维护一个running total用于计算平均传输率的累积值,如下所示:

//Let's assume that INT128 is a 128-bit integer type
static INT128 iRunningTotal = 0;
static INT128 iCounter = 0;

LONGLONG iteration_get_current_average(LONGLONG iRate)
{
    //May be called repeatedly...
    iRunningTotal += iRate;
    iCounter++;

    //Calculate the current average
    return iRunningTotal / iCounter;
}
Run Code Online (Sandbox Code Playgroud)

我搜索了C++ 128-bit integer几乎所有人们建议使用 Boost 库的地方。嗯,这是一种可能性,但我不熟悉它,也不会在我的项目中的其他任何地方使用它。

所以除了 Boost,我很好奇,有没有办法用纯 C/C++ 做到这一点?

c++ mfc visual-c++

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

如何在没有管理员权限的情况下判断驱动器是否已加密 BitLocker?

为了我的目的,我需要知道的是驱动器的 DOS 路径的 BitLocker 加密状态。像这样的东西:

enum DriveEncryptionStatus{
    Unprotected,
    Protected,
    Unknown
};

DriveEncryptionStatus = GetDriveBitlockerEncryptionStatus(L"C:\\");
Run Code Online (Sandbox Code Playgroud)

我能够找到Win32_EncryptableVolume类,不幸的是,这个警告伴随着:

要使用 Win32_EncryptableVolume 方法,必须满足以下条件: 您必须具有管理员权限。

知道如何在不以管理员身份运行的情况下执行此操作吗?

c++ windows encryption winapi

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

有没有办法唯一标识内容脚本在我的 Chrome 扩展程序中运行的 iframe?

在我的 Chrome 扩展程序中,我将内容脚本注入到IFRAMEs页面内的所有内容中。这是manifest.json文件的一部分:

"content_scripts": [
    {
        "run_at": "document_end",
        "all_frames" : true,
        "match_about_blank": true,
        "matches": ["http://*/*", "https://*/*"],
        "js": ["content.js"]
    }
],
Run Code Online (Sandbox Code Playgroud)

因此,具有多个的单个网页IFRAMEs最终将运行我注入的content.js.

内部的逻辑content.jsIFRAME它注入的每个页面或从主/首页收集数据,并将其发送回后台脚本(使用chrome.runtime.sendMessage.)。后台脚本反过来需要将数据存储在全局变量中,稍后使用在扩展本身。

我面临的问题是应用程序需要区分从多个接收到的“数据” IFRAMEs,因为我的数据收集方法可以在用户与页面交互时重复调用,因此我不能简单地“转储”接收到的数据将后台脚本转换为数组。相反,我需要使用dictionary-type 数据存储。

我可以IFRAME通过运行以下命令来判断数据是来自首页还是来自首页:

//From the `content.js`
var isIframe = window != window.top;
Run Code Online (Sandbox Code Playgroud)

我的想法是,如果我收集每个页面的 URL,IFRAME那么我应该能够将其用作唯一键,将数据存储在我的字典类型全局变量中:

//Again from content.js
var strUniqueIFrameURL = document.URL;
Run Code Online (Sandbox Code Playgroud)

好吧,那是行不通的,因为两个或多个IFRAMEs可以具有相同的 URL。

所以我最初的问题是——如何 …

javascript iframe google-chrome google-chrome-extension

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

我可以从 Chrome 扩展程序中获取可用区域设置翻译的列表吗?

有没有办法从我的 Google Chrome 扩展程序中检索所有可用翻译的列表?

例如,我的应用程序可能包含以下文件夹:

_locales\en\messages.json
_locales\fr\messages.json
_locales\es\messages.json
Run Code Online (Sandbox Code Playgroud)

有没有办法从扩展本身中知道它是enfr、 和?es

第二个问题,有没有办法将特定messages.json文件解析为 JSON 数据?我的意思是比chrome.i18n.getMessage().

javascript google-chrome internationalization google-chrome-extension

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

Google身份验证器 - 缺少otpauth协议参数

我正在尝试为我的网站生成Google身份验证器应用的QR码(用于双因素身份验证用户登录.)我按照此指南生成URI(使用Google Chart API.)

所以我编写了这个网址:

https://chart.googleapis.com/chart?chs=200x200&chld=M%7C0&cht=qr&chl=otpauth://totp/Example:alice@gmail.com?secret=TGABZXEP4LKB46AX&issuer=Example

创建了QR码(来自上面的链接.)

但是,当我使用适用于我的iPhone 的Google身份验证器应用程序进行扫描时,我所获得的行不显示发布者(在此屏幕截图中用红色圈出),就像其他服务一样 - 请参阅其他条目中的Google:

在此输入图像描述

那么我错过了什么参数?

authentication oauth google-authenticator google-oauth

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

如何防止我的基于MFC对话框的应用程序在ESC键后关闭,但允许其他控件处理它?

我似乎无法找到一个有效的解决方案,当用户在键盘上点击ESC后,如何阻止基于对话框的MFC应用程序关闭.我一直在寻找代码,人们只是覆盖PreTranslateMessage通知并阻止所有WM_KEYDOWN消息VK_ESCAPE,但这对我不起作用,因为这种方法会阻止应用程序中的所有 ESC按键.因此,例如,当用户打开下拉列表并想要使用ESC键关闭它时,它也将被阻止.或者,如果某人打开弹出菜单或日期时间/日历控件并尝试使用ESC键击等来解除它,也会发生同样的情况.

所以我的问题是,如何防止ESC键击后我的对话框关闭?

c++ windows mfc dialog modal-dialog

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

0x2010的强制完整性级别值代表什么?

我在用户模式进程中运行以下代码片段,当Windows用户帐户登录到工作站时启动.或者,换句话说,其路径放在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run注册表项中.

该代码应该确定我的用户进程的强制完整性级别.它是这样的:

DWORD getMIL()
{
    //Try to get integrity level
    //-1                                            Unknown
    //SECURITY_MANDATORY_UNTRUSTED_RID              0x00000000 Untrusted.
    //SECURITY_MANDATORY_LOW_RID                    0x00001000 Low integrity.
    //SECURITY_MANDATORY_MEDIUM_RID                 0x00002000 Medium integrity.
    //SECURITY_MANDATORY_MEDIUM_PLUS_RID            SECURITY_MANDATORY_MEDIUM_RID + 0x100 Medium high integrity.
    //SECURITY_MANDATORY_HIGH_RID                   0X00003000 High integrity.
    //SECURITY_MANDATORY_SYSTEM_RID                 0x00004000 System integrity.
    //SECURITY_MANDATORY_PROTECTED_PROCESS_RID      0x00005000 Protected process.
    DWORD dwIntgtyLvl = -1;

    HANDLE hToken;
    if(OpenProcessToken(::GetCurrentProcess(), TOKEN_QUERY, &hToken))
    {

        DWORD dwSizeIntgtyLvl = 0;
        if(!GetTokenInformation(hToken, TokenIntegrityLevel, NULL, dwSizeIntgtyLvl, &dwSizeIntgtyLvl) &&
            ::GetLastError() == ERROR_INSUFFICIENT_BUFFER)
        {
            BYTE* pbIntgtyLvl = new BYTE[dwSizeIntgtyLvl];
            if(pbIntgtyLvl)
            {
                TOKEN_MANDATORY_LABEL* pTML = …
Run Code Online (Sandbox Code Playgroud)

c c++ windows winapi kernel32

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

删除表时是否会自动删除 SQLite 索引?

说,如果我首先执行以下操作来使用 SQLite3 数据库创建一个表:

CREATE TABLE `t3` (
    `f0` INTEGER PRIMARY KEY AUTOINCREMENT, 
    `f1` INTEGER NOT NULL REFERENCES `t2`(`f0`) ON DELETE CASCADE, 
    `f2` INTEGER NOT NULL REFERENCES `t1`(`f0`) ON DELETE CASCADE, 
    `f3` INTEGER NOT NULL, 
    `f4` BLOB, 
    `f5` BLOB, 
    `f6` BLOB, 
    `f7` BLOB, 
    `f8` BLOB, 
    `f9` BLOB, 
    `fa` BLOB)
Run Code Online (Sandbox Code Playgroud)

然后在该表上创建一个索引:

CREATE INDEX `it31` ON `t3`(`f1`)
Run Code Online (Sandbox Code Playgroud)

所以在这个表插入了一些行之后,如果我通过执行以下操作将其删除:

DROP TABLE `t3`
Run Code Online (Sandbox Code Playgroud)

它是否也删除了it31索引,还是我需要在删除表之前删除索引?

sqlite

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

我需要安装Windows 10 SDK的哪一部分才能获取MakeAppx.exe?

我试图按照Microsoft的“百年纪念项目”指示将我的应用程序的MSI安装程序转换为UWP,但遇到此错误MakeAppx.exe

在此处输入图片说明

这个Windows 10不是我的开发机器。所以我出去下载Windows 10 SDK,但是现在我很好奇SDK的“一部分” MakeAppx.exe位于什么位置?还是真的需要为此下载并安装2.3 GB?

在此处输入图片说明

winapi windows-installer uwp desktop-bridge

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