Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » UppHub » Ole Automation [FEATURE REQUEST?]
Re: Ole Automation [FEATURE REQUEST?] [message #40855 is a reply to message #40854] Mon, 23 September 2013 16:07 Go to previous messageGo to previous message
koldo is currently offline  koldo
Messages: 3361
Registered: August 2008
Senior Veteran
iST1 wrote on Mon, 23 September 2013 15:29

I do not have Office > 2003, but can you give me some advice about frame removing? Something like this
int counter = ActiveWindow.Application.CommandBars.Count;
for(int i = 0; i < counter;i++)
ActiveWindow.Application.CommandBars[i].Enabled=false;
}


Also can be Close method added to Automation?

Hello iST1

I do not know what do you mean with "frame removing".

What would have to do Close()?

This code is better but flickering remains:

#include <OfficeAutomation/OfficeAutomation.h>

using namespace Upp;

class WordFrm : public TopWindow {
public:
	WordFrm() {
		Sizeable().Zoomable();
		embedded = 0;
	}
	void Embed() {	
		if (doc.IsAvailable("Microsoft")) 
			doc.Init("Microsoft");
		
		doc.AddDoc(true);
		embedded = FindWindow("Opusapp", NULL);
		LONG lStyle = GetWindowLong(embedded, GWL_STYLE);
		lStyle &= ~(WS_CAPTION | WS_THICKFRAME | WS_MINIMIZE | WS_MAXIMIZE | WS_SYSMENU | WS_BORDER | WS_DLGFRAME | WS_SIZEBOX);
		SetWindowLong(embedded, GWL_STYLE, lStyle); 
		LONG lExStyle = GetWindowLong(embedded, GWL_EXSTYLE);
		lExStyle &= ~(WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE);
		SetWindowLong(embedded, GWL_EXSTYLE, lExStyle);			 	
		SetWindowPos(embedded, NULL, 0,0,0,0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER);
		::SetParent(embedded, GetHWND());		
		Layout();
	}
private:
	OfficeDoc doc;
	HWND embedded;
	
	virtual void Layout() {
		if (embedded == 0)
			return;
		Rect r = GetScreenView();
    	Rect pr = GetScreenClient(embedded);	
		MoveWindow(embedded, r.left - pr.left, r.top - pr.top, r.Width(), r.Height(), TRUE);
	}
	virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam) {
		if (message == WM_SIZE)
			Layout();
		return TopWindow::WindowProc(message, wParam, lParam);
	}
};

GUI_APP_MAIN
{	
	WordFrm w;
	w.Open();	
	w.Embed();
	w.Run();
}



Best regards
IƱaki

[Updated on: Mon, 23 September 2013 16:09]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: MAPIEx works with MinGW
Next Topic: [Controls4U] IE shows script errors
Goto Forum:
  


Current Time: Tue May 14 21:48:10 CEST 2024

Total time taken to generate the page: 0.03111 seconds