EDIT control will disappear when I clear the window using direct3d?

mc 4,436 Reputation points
2024-09-13T01:18:36.8466667+00:00

first I created EDIT.

I use direct3d to BeginDraw and EndDraw then present the EDIT will disappear.

and If I use direct2d to do it .it will be ok.

why I can not use direct3d?

here is the project I create:https://github.com/ljzj2/testedit

Windows API - Win32
Windows API - Win32
A core set of Windows application programming interfaces (APIs) for desktop and server applications. Previously known as Win32 API.
2,592 questions
C++
C++
A high-level, general-purpose programming language, created as an extension of the C programming language, that has object-oriented, generic, and functional features in addition to facilities for low-level memory manipulation.
3,693 questions
{count} votes

Accepted answer
  1. Castorix31 84,546 Reputation points
    2024-09-14T16:25:25.5733333+00:00

    Add a Manifest with, at end :

     <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
       <application>
         <!-- A list of the Windows versions that this application has been tested on and is
              is designed to work with. Uncomment the appropriate elements and Windows will 
              automatically selected the most compatible environment. -->
    
         <!-- Windows Vista -->
         <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
    
         <!-- Windows 7 -->
         <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
    
         <!-- Windows 8 -->
         <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
    
         <!-- Windows 8.1 -->
         <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
    
         <!-- Windows 10 -->
         <maxversiontested Id="10.0.19041.0"/>
         <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
    
       </application>
     </compatibility>
    
    
    

    Add WS_EX_LAYERED to Edit control :

    HWND hTextBox = CreateWindowEx(WS_EX_CLIENTEDGE | WS_EX_LAYERED, L"EDIT", NULL, WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL | WS_BORDER, static_cast<int>(15), static_cast<int>(15), static_cast<int>(130), static_cast<int>(30), hwnd, (HMENU)50, (HINSTANCE)GetWindowLongPtr(hwnd, GWLP_HINSTANCE), NULL);
    SetOpacity(hTextBox, 100);
    

    with

    void SetOpacity(HWND hWnd, int nOpacity)
    {
    	SetLayeredWindowAttributes(hWnd, 0, (byte)(255 * nOpacity / 100), LWA_ALPHA);
    }
    

    Then it will appear :

    User's image

    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.