mfc如何使编辑框与变量关联?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc如何使编辑框与变量关联?相关的知识,希望对你有一定的参考价值。

参考技术A 方法很多:\\x0d\\x0a其中一种容易说的 \\x0d\\x0aint num1;\\x0d\\x0achar ch1[15]; // 如果数据会很长的话就设大点\\x0d\\x0aGetDlgItem(IDC_EDIT1)->GetWindowText(ch1,15);\\x0d\\x0anum1=atoi(ch1);\\x0d\\x0a其中IDC_EDIT1是对话框ID,num1是你想要的数据。\\x0d\\x0a向对话框写数据\\x0d\\x0aitoa(num1,ch1,10); // 10表示十进制\\x0d\\x0aGetDlgItem(IDC_EDIT1)->SetWindowText(ch1);

如何在 mFC VC++ 中将编辑控件的背景转换为透明?

【中文标题】如何在 mFC VC++ 中将编辑控件的背景转换为透明?【英文标题】:How do I convert the background of Edit Control to transparent in mFC VC++? 【发布时间】:2019-03-18 08:28:43 【问题描述】:

Output is show in picture

我正在使用一个 CStatic 控件,其变量为“m_background”,ID 为 IDC_background。在此控件中,视频已在单击按钮时运行。还有第二个控件编辑控件,变量为“m_edit”,ID为IDC_edit。这个编辑框放置在静态控件上。我想在视频上显示编辑控件中编写的文本,同时我们通过单击具有编辑控件透明背景颜色的按钮播放视频。 但问题是在我们播放视频时,m_edit 控件出现了灰色/白色背景。我想在播放视频时以“m_edit”控件的透明背景在视频上显示文本。

BOOL CtestcodeDlg::OnInitDialog()//To set up the video in background and text above the video

    m_background.ModifyStyle(0, WS_CLIPSIBLINGS);   
    m_edit.SetWindowPos(&CWnd::wndTop, 0, 0, 0, 0, 
         SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE|WS_EX_TRANSPARENT);
    return TRUE;  // return TRUE  unless you set the focus to a control


HBRUSH CtestcodeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) //To transparent the background of Edit box

    HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
    HBRUSH m_default=CreateSolidBrush(RGB(0,0, 0));
    if(pWnd->GetDlgCtrlID() == IDC_edit)
    
        pDC->SetTextColor(RGB(255,0,0));
        pDC->SetBkColor(TRANSPARENT);
        pDC->SetBkMode(TRANSPARENT);
    
    return hbr;


void CtestcodeDlg::OnBnClickedButton1()////To run the video

    my_instance = libvlc_new(0, NULL);
    my_media_file = libvlc_media_new_location(my_instance, 
                               "rtsp://BigBuckBunny_115k.mov");
    my_player = libvlc_media_player_new_from_media(my_media_file);
    my_event_manager = libvlc_media_player_event_manager(my_player);
    libvlc_media_player_play(my_player);
    libvlc_audio_set_track(my_player ,-1);
    libvlc_media_player_set_hwnd(my_player, m_background);
    Sleep(1000); 
    _beginthread(test, 0, NULL);
    libvlc_audio_set_track(my_player ,-1);

【问题讨论】:

【参考方案1】:

尝试使用 SetLayeredWindowAttributes 函数,并使用您的 bk 颜色的 crKey。 另外,我认为您的代码中的pDC->SetBkColor(TRANSPARENT); 是一个错误,它将 bk 颜色设置为黑色。尝试在没有此调用的情况下运行。

【讨论】:

我在没有这个调用的情况下运行程序但是 pDC->SetBkColor(TRANSPARENT);但这不起作用。

以上是关于mfc如何使编辑框与变量关联?的主要内容,如果未能解决你的问题,请参考以下文章

急!MFC中给一个对话框的不同编辑框关联变量后如何获得多个不同变量的值进行计算处理?????

MFC编辑框关联的变量怎么用UpdateData(FALSE)无法直接写到编辑框中啊,而是需要手动点编辑框

想用MFC下的SetWindowTextW给编辑框输出数值类型的变量,求教

如何将自旋控件关联到 MFC 中的不同编辑框

怎么用MFC,将复选框选中的文字在编辑框中显示出来,例如下面的图片,就是说将选中的课程在编辑框中显示出

MFC - 如何在运行时更新编辑框? (C++)